The 8 GPIO pins on the Crickit are in the Signals block of pins. You have the 8 data pins, each input/output, 3.3v logic, analog or digital.
These GPIO are controlled by the Crickit's seesaw chip, not directly by the microcontroller or the Raspberry Pi. Thus programming them takes a bit more work but they provide some great benefits.
Signals on the Crickit are available on the following pins:
Silkscreen Label |
Arduino Macro |
Seesaw Pin |
1 |
CRICKIT_SIGNAL1 |
2 |
2 |
CRICKIT_SIGNAL2 |
3 |
3 |
CRICKIT_SIGNAL3 |
40 |
4 |
CRICKIT_SIGNAL4 |
41 |
5 |
CRICKIT_SIGNAL5 |
11 |
6 |
CRICKIT_SIGNAL6 |
10 |
7 |
CRICKIT_SIGNAL7 |
9 |
8 |
CRICKIT_SIGNAL8 |
8 |
You can use these as analog or digital I/O pins, setting the mode, value and reading with the seesaw library directly:
#include "Adafruit_Crickit.h"
Adafruit_Crickit crickit;
#define BUTTON_1 CRICKIT_SIGNAL1
#define BUTTON_2 CRICKIT_SIGNAL2
#define LED_1 CRICKIT_SIGNAL3
#define LED_2 CRICKIT_SIGNAL4
void setup() {
Serial.begin(9600);
if(!crickit.begin()){
Serial.println("ERROR!");
while(1) delay(1);
}
else Serial.println("Crickit started");
//Two buttons are pullups, connect to ground to activate
crickit.pinMode(BUTTON_1, INPUT_PULLUP);
crickit.pinMode(BUTTON_2, INPUT_PULLUP);
// Two LEDs are outputs, on by default
crickit.pinMode(LED_1, OUTPUT);
crickit.pinMode(LED_2, OUTPUT);
crickit.digitalWrite(LED_1, HIGH);
crickit.digitalWrite(LED_2, HIGH);
}
void loop() {
if(!crickit.digitalRead(BUTTON_1))
crickit.digitalWrite(LED_1, HIGH);
else
crickit.digitalWrite(LED_1, LOW);
if(!crickit.digitalRead(BUTTON_2))
crickit.digitalWrite(LED_2, HIGH);
else
crickit.digitalWrite(LED_2, LOW);
}
Page last edited January 22, 2025
Text editor powered by tinymce.