NeoPixels Bicycle Project
This project was made with the intention to create a reflexion around the effort of cyclists, made with a Hall effect sensor.
Components and supplies
1
Adafruit NeoPixel Digital RGB LED Strip 144 LED, 1m White
1
Hall Effect Sensor
1
Breadboard (generic)
1
Arduino UNO
Apps and platforms
1
Arduino IDE
Project description
Code
Hall effect_neopixels
arduino
Most of the comments on the code are written in Spanish.
1//Libreria Adafruit 2 3#include <Adafruit_NeoPixel.h> 4#ifdef __AVR__ 5 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket 6#endif 7 8//Pin al que se encuentra conectado (analogo) 9 10#define PIN A1 11 12//Nmero de luces que se encuetran conectados 13 14#define NUMERO_LUCES 64 15 16/*Parmetros: 17 * 1. Nmero de luces 18 * 2. Pin eal que se encuentra conectado 19 * 3. Codigo de luz al que se somete 20 * 4. 21 * NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) 22 */ 23 24Adafruit_NeoPixel pixels (NUMERO_LUCES, PIN, NEO_RGB + NEO_KHZ800); 25 26const int hallPin = 9; // hall effect sensor out pin 27int hallState = 0; // Initial hall sensor status 28 29int i = -1; //Contador para las luces 30int contador = 0; //Contador del sensor Hall 31int limite = 160; //Limite para que el contador se reinicie y encienda una luz 32 33void setup() 34{ 35 36 Serial.begin(9600); 37 38 pinMode(hallPin, INPUT); // The hall effect sensor pin as an input 39 40 #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) 41 clock_prescale_set(clock_div_1); 42 #endif 43 44 //Inicializacin del strip. 45 46pixels.begin(); //Inicializa el Strip Object 47pixels.show(); //Apaga las luces 48 49 50} 51 52void loop() 53{ 54 55 hallState = digitalRead(hallPin); // reading the state of the hall effect sensor pin 56 57 if (hallState == LOW) // Registra +1 cada vez que se registra un paso de un imn. 58 { 59 contador++; 60 } 61 if (contador == limite) //Enciende una luz cuando el contador llega a su limite 62 { 63 contador = 0; 64 i++; 65 for (int a = 0; a <= i && a < NUMERO_LUCES; a++) 66 { 67 if (a >= 0 && a < 21) //Modifica la luz del pixel nmero 0 a 20 68 { 69 pixels.setPixelColor (a, pixels.Color(255,77,77)); 70 } 71 if (a >= 21 && a < 42) //Modifica la luz del pixel nmero 21 a 41 72 { 73 pixels.setPixelColor (a, pixels.Color(0,255,255)); 74 } 75 if (a >= 42 && a <= 64) //Modifica la luz del pixel nmero 42 a 64 76 { 77 pixels.setPixelColor (a, pixels.Color(0,255,255)); 78 } 79 pixels.show(); 80 } 81 } 82 Serial.println(hallState); //Imprime los resultados recibidos por el sensor 83} 84
Hall effect_neopixels
arduino
Most of the comments on the code are written in Spanish.
1//Libreria Adafruit 2 3#include <Adafruit_NeoPixel.h> 4#ifdef __AVR__ 5 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket 6#endif 7 8//Pin al que se encuentra conectado (analogo) 9 10#define PIN A1 11 12//Nmero de luces que se encuetran conectados 13 14#define NUMERO_LUCES 64 15 16/*Parmetros: 17 * 1. Nmero de luces 18 * 2. Pin eal que se encuentra conectado 19 * 3. Codigo de luz al que se somete 20 * 4. 21 * NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) 22 */ 23 24Adafruit_NeoPixel pixels (NUMERO_LUCES, PIN, NEO_RGB + NEO_KHZ800); 25 26const int hallPin = 9; // hall effect sensor out pin 27int hallState = 0; // Initial hall sensor status 28 29int i = -1; //Contador para las luces 30int contador = 0; //Contador del sensor Hall 31int limite = 160; //Limite para que el contador se reinicie y encienda una luz 32 33void setup() 34{ 35 36 Serial.begin(9600); 37 38 pinMode(hallPin, INPUT); // The hall effect sensor pin as an input 39 40 #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000) 41 clock_prescale_set(clock_div_1); 42 #endif 43 44 //Inicializacin del strip. 45 46pixels.begin(); //Inicializa el Strip Object 47pixels.show(); //Apaga las luces 48 49 50} 51 52void loop() 53{ 54 55 hallState = digitalRead(hallPin); // reading the state of the hall effect sensor pin 56 57 if (hallState == LOW) // Registra +1 cada vez que se registra un paso de un imn. 58 { 59 contador++; 60 } 61 if (contador == limite) //Enciende una luz cuando el contador llega a su limite 62 { 63 contador = 0; 64 i++; 65 for (int a = 0; a <= i && a < NUMERO_LUCES; a++) 66 { 67 if (a >= 0 && a < 21) //Modifica la luz del pixel nmero 0 a 20 68 { 69 pixels.setPixelColor (a, pixels.Color(255,77,77)); 70 } 71 if (a >= 21 && a < 42) //Modifica la luz del pixel nmero 21 a 41 72 { 73 pixels.setPixelColor (a, pixels.Color(0,255,255)); 74 } 75 if (a >= 42 && a <= 64) //Modifica la luz del pixel nmero 42 a 64 76 { 77 pixels.setPixelColor (a, pixels.Color(0,255,255)); 78 } 79 pixels.show(); 80 } 81 } 82 Serial.println(hallState); //Imprime los resultados recibidos por el sensor 83} 84
Downloadable files
Sketch
The temperature sensor is used as a representation of the Hall effect sensor.
Sketch

Comments
Only logged in users can leave comments