Programming with Arduino IDE

Author Gravatar Image LADY ADA
Once you've gotten the basic Blink example to work, you can try some of the other Arduino functions and libraries. We'll be filling out this section with more example code and links to tutorials - this is just to get you started!

pinMode() & digitalWrite() & digitalRead()


You can use pinMode() to make inputs and outputs on any of digital pins #0 thru #4
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:
Copy Code
      /*
  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 Analog 1), digital #3 (called Analog 3) and digital #4 (called Analog 2)

For example, to read an analog voltage on pin #2, you would call analogRead(1) to read an analog voltage on pin #4 call analogRead(2)

This is a bit confusing because the analog pins are numbered differently than the digital pins!

analogWrite()


There are a few PWM outputs on the Trinket, you can call analogWrite() on digital #0, #1 and #4.

For example, to pulse the built-in LED slowly, upload this code:
Copy 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!


Last updated on 2014-04-22 at 06.33.54 PM Published on 2013-09-03 at 05.30.12 PM