Przeszukaj forum
Pokazywanie wyników dla tagów 'globus'.
Znaleziono 1 wynik
-
Arduino Uno Globus Albi z podświetleniem globusa na 30 minut.
99teki opublikował temat w Arduino i ESP
- dzieci zasypiają z włączonym oświetleniem globusa Albi. - fakt że pobiera tylko 2.5 W mocy ale po co ma się świecić całą noc. - dorobimy "timer" na 30 minut a potem deep sleep Uno. - poniżej wersja beta programu, ma te zaletę że działa u mnie. // 2023.12.14, bubu321, working // // piny PWM 3,5,6,9,10,11 // analogWrite(pins, dutyCycle); // dutyCycle 0..255 // pin PWM #include <avr/sleep.h> #define pins 9 unsigned long int czas15min = 1800000; // 1.800.000 30 minut unsigned long int czas30sek; int dutyCycle = 255; // -------------------------- subroutine --------------------------- // -------------- void enterSleep() { set_sleep_mode(SLEEP_MODE_PWR_DOWN); analogWrite(pins, 0); sleep_enable(); // attachInterrupt(digitalPinToInterrupt(2), wakeUpNow, LOW); sleep_mode(); /* The program will continue from here. */ /* First thing to do is disable sleep. */ // sleep_disable(); // detachInterrupt(digitalPinToInterrupt(2)); } // ----------------------------------------- setup -------------------- void setup() { Serial.begin(250000); Serial.println("start"); Serial.println(czas15min); pinMode(13, OUTPUT); analogWrite(pins, dutyCycle); // czas15min = millis(); // 15 minut; } // ------------------------------------------ loop -------------------------- void loop() { if (millis() > czas15min ) { Serial.println("sleeping ..."); delay(500); enterSleep(); // Enter sleep method! } digitalWrite(13, HIGH); delayMicroseconds(100); digitalWrite(13, LOW); delayMicroseconds(1000 - 100); if (millis() > czas30sek) { dutyCycle -= 10; czas30sek = millis() + 60000; // co 60 sekund if (dutyCycle < 10) dutyCycle = 0; Serial.println(dutyCycle); Serial.println(millis()); } analogWrite(pins, dutyCycle); } // ------------- end ---------------- -