Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
projets:arduino_open_close [15/01/2018 19:27] Mathieu Hery [Fichiers] |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Code Arduino pour la boîte Ouvert/fermé ====== | ||
| - | <code> | ||
| - | /* Sketch created for an Open/closed sign for Pop [lab] Montreuil | ||
| - | |||
| - | An Arduino connects to 2 Pololu Led strips, 12 leds long | ||
| - | A switch toggles between which one is lit | ||
| - | | ||
| - | |||
| - | Fallback mode only back and forward | ||
| - | |||
| - | mh8 - December 2017 | ||
| - | |||
| - | */ | ||
| - | |||
| - | #include <PololuLedStrip.h> | ||
| - | |||
| - | // Create 2 ledStrip objects on pin 10 & 12 | ||
| - | PololuLedStrip<12> ledStripOpen; | ||
| - | PololuLedStrip<10> ledStripClosed; | ||
| - | |||
| - | // Create two buffers to hold the colors on the ledStrips | ||
| - | #define LED_COUNT 12 | ||
| - | rgb_color colorsOpen[LED_COUNT]; | ||
| - | rgb_color colorsClosed[LED_COUNT]; | ||
| - | rgb_color colors[LED_COUNT]; | ||
| - | rgb_color colorsOff[LED_COUNT]; | ||
| - | |||
| - | // A switch button toggles On/Off | ||
| - | const uint8_t buttonPin = 2; | ||
| - | uint8_t buttonState = 0; | ||
| - | |||
| - | // A push button selects between different modes | ||
| - | // Use a 4.7K pullup resistor to connect the pin to the 5V | ||
| - | const uint8_t switchPin = 4; | ||
| - | uint8_t switchSelect = 0; | ||
| - | |||
| - | //Variable for delays (can go up to 65536 on 2 bytes) | ||
| - | uint16_t interval = 100; | ||
| - | |||
| - | //Variable defining maximum number of modes. Count starts at 0. | ||
| - | //This value should be 1 more than the number of the last mode | ||
| - | uint8_t maxModes = 3; | ||
| - | |||
| - | void setup() { | ||
| - | |||
| - | pinMode(buttonPin, INPUT); | ||
| - | pinMode(switchPin, INPUT); | ||
| - | |||
| - | Serial.begin(115200); | ||
| - | |||
| - | //Initialize all arrays to off | ||
| - | for (int i = 0; i < LED_COUNT; i++) | ||
| - | { | ||
| - | colors[i] = colorsOff[i] = rgb_color(0, 0, 0); | ||
| - | } | ||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | |||
| - | //In this mode we need to know if we address the OPEN or the CLOSED ledStrip | ||
| - | int buttonState = digitalRead(buttonPin); | ||
| - | |||
| - | //Define two random colors to use in the back and foward movement | ||
| - | rgb_color colorOne = rgb_color(random(255), random(255), random(255)); | ||
| - | rgb_color colorTwo = rgb_color(random(255), random(255), random(255)); | ||
| - | |||
| - | //FORWARD Movement | ||
| - | for (uint8_t i = 0; i < LED_COUNT; i++) { | ||
| - | colors[i] = colorOne; | ||
| - | if (buttonState == 1) { | ||
| - | // Write to OPEN not to CLOSED | ||
| - | ledStripOpen.write(colors, LED_COUNT); | ||
| - | ledStripClosed.write(colorsOff, LED_COUNT); | ||
| - | } | ||
| - | |||
| - | else if (buttonState == 0) { | ||
| - | // Write to CLOSED not to OPEN | ||
| - | ledStripClosed.write(colors, LED_COUNT); | ||
| - | ledStripOpen.write(colorsOff, LED_COUNT); | ||
| - | } | ||
| - | delay(interval); | ||
| - | } | ||
| - | |||
| - | //BACK Movement | ||
| - | for (uint8_t i = LED_COUNT; i > 0; i--) { | ||
| - | colors[i] = colorTwo; | ||
| - | if (buttonState == 1) { | ||
| - | // Write to OPEN not to CLOSED | ||
| - | ledStripOpen.write(colors, LED_COUNT); | ||
| - | } | ||
| - | |||
| - | else if (buttonState == 0) { | ||
| - | // Write to CLOSED not to OPEN | ||
| - | ledStripClosed.write(colors, LED_COUNT); | ||
| - | } | ||
| - | delay(interval); | ||
| - | } | ||
| - | } | ||
| - | |||
| - | void writetoLeds() { | ||
| - | int buttonState = digitalRead(buttonPin); | ||
| - | |||
| - | if (buttonState == 1) { | ||
| - | // Turn ON OPEN led strip turn OFF CLOSED led strip | ||
| - | for (uint8_t i = 0; i < LED_COUNT; i++) | ||
| - | { | ||
| - | colorsOpen[i] = colors[i]; | ||
| - | colorsClosed[i] = colorsOff[i]; | ||
| - | } | ||
| - | } | ||
| - | |||
| - | else if (buttonState == 0) { | ||
| - | // Turn OFF OPEN led strip turn ON CLOSED led strip | ||
| - | for (uint8_t i = 0; i < LED_COUNT; i++) | ||
| - | { | ||
| - | colorsOpen[i] = colorsOff[i]; | ||
| - | colorsClosed[i] = colors[i]; | ||
| - | } | ||
| - | } | ||
| - | |||
| - | // Write to the led strips | ||
| - | ledStripOpen.write(colorsOpen, LED_COUNT); | ||
| - | ledStripClosed.write(colorsClosed, LED_COUNT); | ||
| - | |||
| - | delay(10); | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | ---- | ||
| - | ==== Fichiers ==== | ||
| - | |||
| - | Pour l'instant le panneau n'est pas stabilisé (fallback mode, cf code ci-dessus). | ||
| - | |||
| - | Le fichier .ino sera mis en ligne lorsque le code sera stabilisé et présentera plusieurs affichages différents. | ||
