pinMode() & digitalWrite() & digitalRead()
You can use pinMode() to make inputs and outputs on any of digital pins #0 thru #2
digitalWrite also works well, and you can also use it with pinMode(INPUT) to activate the internal pull-up resistor on a pin
For example, to set up digital #0 as an input, with an internal pullup, and then check if it is being pulled to ground via a button or switch and turn on the red LED when it is pressed:
/* Button Turns on an LED when a switch connected from #0 to ground is pressed This example code is in the public domain. To upload to your Gemma or Trinket: 1) Select the proper board from the Tools->Board Menu 2) Select USBtinyISP from the Tools->Programmer 3) Plug in the Gemma/Trinket, make sure you see the green LED lit 4) For windows, install the USBtiny drivers 5) Press the button on the Gemma/Trinket - verify you see the red LED pulse. This means it is ready to receive data 6) Click the upload button above within 10 seconds */ #define SWITCH 0 #define LED 1 // the setup routine runs once when you press reset: void setup() { // initialize the LED pin as an output. pinMode(LED, OUTPUT); // initialize the SWITCH pin as an input. pinMode(SWITCH, INPUT); // ...with a pullup digitalWrite(SWITCH, HIGH); } // the loop routine runs over and over again forever: void loop() { if (! digitalRead(SWITCH)) { // if the button is pressed digitalWrite(LED, HIGH); // light up the LED } else { digitalWrite(LED, LOW); // otherwise, turn it off } }
analogRead()
You can read an analog voltage from digital #2 (called A1)
For example, to read an analog voltage on pin #2, you would call analogRead(A1)
analogWrite()
There are a few PWM outputs on the Trinket, you can call analogWrite() on digital #0 and #1
For example, to pulse the built-in LED slowly, upload this code:
/* Pulse Pulses the internal LED to demonstrate the analogWrite function This example code is in the public domain. To upload to your Gemma or Trinket: 1) Select the proper board from the Tools->Board Menu 2) Select USBtinyISP from the Tools->Programmer 3) Plug in the Gemma/Trinket, make sure you see the green LED lit 4) For windows, install the USBtiny drivers 5) Press the button on the Gemma/Trinket - verify you see the red LED pulse. This means it is ready to receive data 6) Click the upload button above within 10 seconds */ int led = 1; // pulse 'digital' pin 1 - AKA the built in red LED // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { for (int i=0; i<256; i++) { analogWrite(led, i); // PWM the LED from 0 to 255 (max) delay(5); } for (int i=255; i>=0; i--) { analogWrite(led, i); // PWM the LED from 255 (max) to 0 delay(5); } }
More...
We also know the following libraries work:
- Adafruit NeoPixel - control up to ~150 Neopixels via a Trinket!
- SoftwareSerial - the built in SoftSerial library can (at least) transmit data on any digital pin.
- More as we do more testing and verification!