Реле времени своими руками 2
Ранее уже делал подобную схему, но вышло слишком дорого и сложно. Поэтому реле времени своими руками буду упрощать и удешевлять 😉 Во первых уберем индикатор, соответственно сдвиговый регистр будет не нужен. Из индикации добавим светодиод, который будет показывать включено или выключено реле. Так-же подумав, решил добавить кнопку ручного включения/выключения реле. Сердцем будет микросхема attiny85. Так-же в схему добавил и блок питания (HLK-PM01), чтоб вся конструкция была единой платой
Принципиальная схема (потыкать в эмуляторе можно тут):
Схема на текстолите:
Ну и скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
bool myClock[]={1,0,1,0,0,0,0,0,0,0,0,0,0,0}; int myClock_len=sizeof(myClock); int delayTime=6000; bool button_active=false; int inc=0; uint32_t myTimer1; int relay_pin = 4; void setup() { pinMode(0, OUTPUT); pinMode(2, INPUT_PULLUP); digitalWrite(0, HIGH); // Включение светодиода pinMode(relay_pin,OUTPUT); } void loop() { if (millis()-myTimer1>=delayTime||millis()-myTimer1<0){ myTimer1=millis(); if (button_active==false){ if (myClock[inc]==0){ digitalWrite(0, LOW); // Выключение светодиода digitalWrite(relay_pin,LOW); } else { digitalWrite(0, HIGH); // Включение светодиода digitalWrite(relay_pin,HIGH); }; inc++; if (inc>myClock_len){ inc=0; }; }; }; if (digitalRead(2)==0){ if (button_active==false){ digitalWrite(0, HIGH); // Включение светодиода digitalWrite(relay_pin,HIGH); button_active=true; } else { button_active=false; digitalWrite(0, LOW); // Выключение светодиода digitalWrite(relay_pin,LOW); }; delay(1000); }; } |
Вот так готовлю почву чем заниматься долгими зимними вечерами.. Итоговая стоимость предварительно, вышла примерно такая:
- блок питания — 160р
- attiny85 — 80р
- текстолит — 150р
- светодиод — 7р
- реле — 150р
Итого — примерно 600р. Ну собственно это цена реле времени своими руками уже готового если покупать на валдберис. Но тут то своими руками 😉