/* Konyhai óra program (pl. teafőzéshez) Egy nyomógomb, egy 12-es NeoPixel gyűrű, egy hangszóró és két ellenállás. A nyomógomb hosszú lenyomásával állítható be a főzési idő. Amíg nyomjuk a gombot, addig nő a főzési idő 1 időegységgel. Amikor elengedjük a gombot, indul a visszaszámlálás. A főzési idő eltelte után hangjelzést ad a készülék. */ #define C 262 //zenei hangok #define D 294 #define E 330 #define F 349 #define G 392 #define A 440 #define H 494 #define Cf 523 #include #define LED_COUNT 12 //a LED-ek száma a NeoPixel gyűrűben #define DIN_PIN 2 //a NeoPixelt vezérlő pin sorszáma Adafruit_NeoPixel gyuru(LED_COUNT, DIN_PIN); //a "gyuru" nevű NeoPixel objektum létrehozása void setup() { gyuru.begin(); gyuru.setBrightness(50); //a gyűrű fényerejének beállítása pinMode(4,OUTPUT); //hangszóró pinMode(6,INPUT_PULLUP); //nyomógomb } int ido=0; //a beállított főzési idő void loop() { gyuru.setPixelColor(ido, 255-ido*23, ido*23, 0); //a 0-ás sorszámú LED bekapcsolása (sorszám, vörös, zöld, kék) gyuru.show(); //a LED-ek frissítése delay(500); gyuru.setPixelColor(ido, 0, 0, 0); //a 0-ás sorszámú LED kikapcsolása gyuru.show(); delay(500); if (digitalRead(6)==LOW && ido<11) { //ha a gomb le van nyomva ÉS ido<11 ido=ido+1; } if (digitalRead(6)==HIGH && ido>0) { //ha a gomb nincs lenyomva ÉS ido>0 ido=ido-1; gyuru.setPixelColor(ido, 255-ido*23, ido*23, 0); gyuru.show(); delay(500); if (ido==0) { //ha letelt az idő tone(4,C,1000); } } }