Le relazioni I luoghi Divertirsi La casa Il cibo Il lavoro La natura Le misurazioni I testi

Spero che il mio testo sia interessante e utile per qualcuno.

J'espère que mon sujet sera intéressant et utile à quelqu'un.

Il funzionamento · Le fonctionnement

Quando una persona si avvicina a meno di 70 cm, l'anello LED si illumina con un colore casuale (su un totale di sei). Dopo 30 secondi, l'anello LED si spegne.

Quand une personne s'approche à moins de 70 cm, l'anneau de LED s'allume avec une couleur aléatoire (parmi six). Au bout de trente secondes, l'anneau de LED s'éteint.

La mappatura elettrica · Le schéma électrique
Il codice sorgente · Le code source en C++
// ################################ // # MAIN ILLUMINEE LUCIEN & KARINE // # Guy Magli 04.03.2025 // ################################ // # Conception, cablages // # mises a jour, contact... // # www.magli.fr // # auguste@magli.fr // ################################ // // ! ======================== ! // ! Librairies et parametres ! // ! ======================== ! // #include <"Wire.h"> // // : Pour l'anneau de leds : // // L'anneau est branche sur les connecteurs 5 volts, GND et 7 // #include <"Adafruit_NeoPixel.h"> #ifdef __AVR__ #include <"avr/power.h"> #endif #define LED_COUNT 24 // Grand anneau de 24 leds #define LED_PIN 4 // Connecteur du signal Adafruit_NeoPixel pixels(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // ! ================== ! // ! VARIABLES GLOBALES ! // ! ================== ! const int iTrig = 7; // Pour les ultrasons const int iEcho = 8; // Id. int t, g; long lMesure = 0; float fDistance = 1000; int iCouleur; int iBrillance = 100; int iSaut = 1; // ! ===== ! // ! SETUP ! // ! ===== ! void setup() { Serial.begin(9600); pixels.begin(); randomSeed(analogRead(0)); pinMode(iEcho, INPUT); pinMode(iTrig, OUTPUT); EteintTourne(0,0,0); } // ! ==== ! // ! LOOP ! // ! ==== ! void loop() { fDistance = 1000.00; while (fDistance > 70.00) { digitalWrite(iTrig, LOW); delayMicroseconds(2); delay(100); digitalWrite(iTrig, HIGH); delayMicroseconds(10); digitalWrite(iTrig, LOW); lMesure = pulseIn(iEcho, HIGH); digitalWrite(iTrig, LOW); fDistance = lMesure / 68; delay(100); } iCouleur = random(1, 6); switch (iCouleur) { case 1: AllumeTourne(11, 83, 69); break; // Vert chaud case 2: AllumeTourne(225, 0, 0); break; // Rouge feu case 3: AllumeTourne(0, 0, 255); break; // Bleu profond case 4: AllumeTourne(125, 102, 8); break; // Jaune orangé case 5: AllumeTourne(81, 46, 95); break; case 6: AllumeTourne(125, 125, 125); break; } delay(30000); switch (iCouleur) { case 1: EteintTourne(11, 83, 69); break; case 2: EteintTourne(225, 0, 0); break; case 3: EteintTourne(0, 0, 255); break; case 4: EteintTourne(125, 102, 8); break; case 5: EteintTourne(81, 46, 95); break; case 6: EteintTourne(125, 125, 125); break; } } // ! ========== ! // ! PROCEDURES ! // ! ========== ! void AllumeTourne(int a, int b, int c) { pixels.clear(); pixels.setBrightness(iBrillance); for (int iLed = 0; iLed < LED_COUNT; iLed += iSaut) { pixels.setPixelColor(iLed, pixels.Color(a, b, c)); pixels.show(); delay(50 * iSaut); } } void EteintTourne(int a, int b, int c) { for (int iLed = 0; iLed < LED_COUNT; iLed++) { pixels.setPixelColor(iLed, pixels.Color(a, b, c)); pixels.show(); delay(100); pixels.setPixelColor(iLed, pixels.Color(0, 0, 0)); pixels.show(); delay(100); } pixels.clear(); }
Le tappe della fabbricazione · Les étapes de fabrication
auguste@magli.fr
Questa pagina è stata modificata il 16.04.26
È stata pubblicata su
bluesky 05.03.25 · mastodon 05.03.25 · pinterest xx.xx.