The Arduino code presented below works equally well on all versions of GEMMA: v1, v2 and M0. But if you have an M0 board, consider using the CircuitPython code on the next page of this guide, no Arduino IDE required!
If this is your first time using GEMMA, work through the Introducing GEMMA guide first; you need to customize some settings in the Arduino IDE. Once you have it up and running (test the 'blink' sketch), then follow the instructions on the following page for installing the NeoPixel library:
NeoPixel Überguide: Arduino Library Installation
Plug in your circuit and load up the sketch below:
// SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries // // SPDX-License-Identifier: MIT #include <Adafruit_NeoPixel.h> #define NUM_LEDS 8 // This many NeoPixels... #define LED_PIN 1 // are connected to this DIGITAL pin # #define SENSOR 2 // Light sensor to this DIGITAL pin # Adafruit_NeoPixel strip(NUM_LEDS, LED_PIN); void setup() { strip.begin(); strip.show(); // Initialize all pixels to 'off' pinMode(SENSOR, INPUT_PULLUP); // Enable pull-up resistor on sensor pin } void loop() { // The LDR is being used as a digital (binary) sensor, so it must be // COMPLETELY dark to turn it off, your finger is not opaque enough! if(!digitalRead(SENSOR)) { // Sensor exposed to light? colorWipe(strip.Color(255, 0, 255), 50); // Animate purple } else { // else sensor is dark colorWipe(strip.Color(0, 0, 0), 50); // Animate off } delay(2); // Pause 2 ms before repeating } // Fill pixels one after the other with a color void colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; i<strip.numPixels(); i++) { strip.setPixelColor(i, c); strip.show(); delay(wait); } }
Page last edited January 21, 2025
Text editor powered by tinymce.