„Arduino“ programuojama 2 pakopų laikmačio grandinė

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame straipsnyje mes sužinome, kaip sukurti paprastą 2 pakopų „Arduino“ programuojamą laikmačio grandinę, kuri gali būti naudojama įjungti / išjungti elektrinę apkrovą su nepriklausomai reguliuojamais įjungimo ir išjungimo laikais.

Pavyzdžiui, jei norite, kad lemputė 24 valandas liktų įjungta, o 2 valandas - išjungta, galite tai padaryti greitai pakeitę programos kodą. Tokiu pačiu būdu galite tinkinti išvesties laiką pagal bet kurį kitą norimą laiko intervalų rinkinį, tinkamai pakeisdami kodą.



Jūs tiesiog privalote sudaryti ir įkelti šį kodą į savo „Arduino“ plokštę ir paleiskite laikmačio funkciją pagal jūsų konkrečius programos poreikius.

Programos kodas

void setup(){ pinMode(13, OUTPUT) } void loop(){ digitalWrite(13, HIGH) delay(86400000) digitalWrite(13, LOW) delay(3600000) }

Aukščiau pateiktame pavyzdyje koduokite eilutes vėlavimas (86400000) ir vėlavimas (3600000) atitinkamai nustatykite išėjimo įjungimo ir išjungimo uždelsimo laiko intervalus milisekundėmis. Čia figūra 86400000 milisekundės atitinka 24 valandas, o 3 600 000 eksponuoja 1 valandos vėlavimą.



Galite pritaikyti šias dvi reikšmes pagal savo pageidavimus, kad gautumėte reikiamą išvesties vėlavimą.

Nustačius ir įjungus maitinimą, „Arduino“ toliau persijungs iš dviejų žingsnių įjungimo / išjungimo laiko sekos. tol, kol sistemai lieka galia.

Grandinės schema

Visą grandinės schemą kartu su „Arduino“ jungtimis galima pamatyti šioje diagramoje:

„Arduino“ vieno kadro laikmačio grandinė

Jei nenorite, kad laikmatis pereitų per dviejų žingsnių laikmatį, vietoj to, kad laikmatis būtų vieno kadro tipas, kuris visam laikui išsijungs po nustatyto atidėjimo, galite pritaikyti šį kodą:

int led = 13 // Pin 13 has an LED connected on most Arduino boards. unsigned long DELAY_TIME = 10000 // 10 sec unsigned long delayStart = 0 // the time the delay started bool delayRunning = false // true if still waiting for delay to finish void setup() { pinMode(led, OUTPUT) // initialize the digital pin as an output. digitalWrite(led, HIGH) // turn led on // start delay delayStart = millis() delayRunning = true } void loop() { // check if delay has timed out if (delayRunning && ((millis() - delayStart) >= DELAY_TIME)) { delayRunning = false // finished delay -- single shot, once only digitalWrite(led, LOW) // turn led off } }

Jei norite atskirai suprojektuotos identiškos programuojamos laikmačio grandinės versijos, galite pasirinkti šią grandinę

Dalys, reikalingos „Arduino“ programuojamo laikmačio grandinei

  • „Arduino UNO“ valdyba = 1
  • IC 7809 = 1
  • BC547 = 1
  • 1N4007 Diodas = 1
  • 10k 1/4 w rezistorius = 1
  • Relė 12V / 400 omų / SPDT / 5 amp = 1
  • 12 V kintamosios srovės adapteris = 1



Pora: Paprasta skaitmeninė laikmačio grandinė su 2 skaitmenų ekranu Kitas: Skaitmeninė termometro grandinė - energijai naudoti saulės elementą