Spisu treści:
- Krok 1: Instrukcje dotyczące podłączania
- Krok 2:
- Krok 3:
- Krok 4:
- Krok 5:
- Krok 6:
- Krok 7:
- Krok 8:
- Krok 9: Instrukcje programowania
- Krok 10:
- Krok 11:
- Krok 12:
- Krok 13:
- Krok 14:
Wideo: Projekt budzika Arduino: 14 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
W tym projekcie użyjemy Arduino Uno do sterowania ekranem LCD, aby pokazać aktualny czas i czas, na który ustawiony jest alarm. Za każdym razem użyjemy przycisków do ustawienia.
Materiały:
- Arduino Uno -
- Deska chlebowa -
- Zworki (x13+) -
- Rezystory 10 kΩ (x4) -
- Ekran LCD -
- 7 przycisków -
- Głośnik piezoelektryczny -
Krok 1: Instrukcje dotyczące podłączania
1. Podłącz przewód połączeniowy z pinu 5V na Arduino do jednej z szyn + na płytce stykowej.
Krok 2:
2. Podłącz przewód połączeniowy z pinu GND na Arduino do szyny - obok szyny +, którą wybrałeś na płytce stykowej.
Krok 3:
3. Podłącz ekran LCD do zasilania, uziemienia i pinu TX (pin 1).
Krok 4:
4. Umieść 7 guzików na płytce stykowej nogami w poprzek szczeliny w płytce stykowej.
Krok 5:
5. Umieścić rezystory 10 kΩ z szyny z podłączonym do niej pinem GND do lewych dolnych pinów przycisków.
Krok 6:
6. Umieść przewody połączeniowe między prawym dolnym stykiem przycisków a szyną 5V na płytce stykowej.
Krok 7:
7. Umieścić zworki między pinami 6, następnie 8-13 i pinem przycisku, do którego podłączony jest rezystor.
Krok 8:
8. Następnie umieść głośnik Piezo na płytce stykowej i podłącz pin 7 do pinu zasilania, a następnie rezystor 100 omów do masy.
Krok 9: Instrukcje programowania
1. Przegląd: Ten projekt poprosi użytkownika o ustawienie aktualnego czasu przy początkowym włączeniu wyświetlacza, aktualnej godziny i czasu, na który ustawiony jest alarm. Podłączone powyżej przyciski będą używane do ustawiania za każdym razem. Od lewej do prawej można ustawić aktualną godzinę, ustawić aktualną minutę, ustawić aktualną AM lub PM, ustawić godzinę alarmu, ustawić minutę alarmu, ustawić alarm AM lub PM. Ostatni przycisk służy do wyciszenia alarmu, gdy zabrzmi.
Krok 10:
2. Pierwszą rzeczą, którą musimy zrobić, to zainicjować naszą zmienną, której będziemy używać.
// Zainicjuj zmienne do użyciaint godzina = 0; // Godzina dla bieżącego czasu int minuta = 0; //
Minuta aktualnego czasu int sekunda = 0; // Sekunda dla aktualnego czasu
int godzina_a = 0; int // Godzina czasu alarmu
minuta_a = 0; // Minuta czasu alarmu
bool am_pm = fałsz; // Przełącz flagę AM/PM. Fałsz to AM, prawda to PM
bool am_pm_a = fałsz; // AM/PM przełącz flagę alarmu. Fałsz to AM, prawda to PM
int zestaw_hr = 13; // Użyj pinu 13, aby ustawić godzinę
int set_min = 12; // Użyj pinu 12, aby ustawić minuty int
set_am_pm = 11; // Użyj pinu 11, aby ustawić am/pm
int set_hr_a = 10; // Użyj pinu 10, aby ustawić godzinę alarmu int set_min_a = 9; // Użyj pinu 9, aby ustawić minutę alarmu int set_am_pm_a = 8; // Użyj pinu 8, aby ustawić alarm przed południem/po południu
wewn mówca = 7; // Przypnij do użycia dla speakerint quiet = 6; // Przypnij, aby zatrzymać głośnik
alarm logiczny = fałszywy; // Flaga do przełączenia, aby zachować alarm
bool wyciszony = false; // Flaga pokazująca ciszę nie została naciśnięta
int cur_time = 0; // Zmienna dla aktualnego czasu
int czas = 0; // Zmienna dla upływającego czasu
Krok 11:
3. Następnie musimy ustawić ekran LCD i powiedzieć użytkownikowi, aby ustawić aktualny czas. Ponieważ wystarczy to zrobić tylko raz, zrobimy to w procedurze konfiguracji.
pusta konfiguracja () {
// Skonfiguruj ekran LCD
Serial.początek(9600); // Zainicjuj Serial z prędkością 9600 bodów
Zapis.seryjny(17); // Włącz podświetlenie
Serial.zapis(24); // Włącz wyświetlacz z kursorem i bez mrugnięcia
Serial.zapis(12); // Wyczyść ekran
Serial.zapis(128); // Przenieś kursor do lewego górnego rogu// Ustaw tryb pinMode pinMode(set_hr, WEJŚCIE); pinMode(set_min, INPUT);
pinMode(set_am_pm, INPUT);
pinMode(set_hr_a, INPUT);
pinMode(set_min_a, INPUT);
pinMode(set_am_pm_a, INPUT);
pinMode(głośnik, WYJŚCIE);
pinMode(cichy, INPUT);
// Przy początkowym zasilaniu, poproś użytkownika o ustawienie aktualnego czasu. Serial.print("Ustaw aktualny czas"); opóźnienie (2000);
Serial.zapis(12);
printTimes();
cur_time = mili(); // Zapisz aktualny czas}
Krok 12:
4. Następnie, w procedurze pętli, śledzimy czas i odczytujemy stan przycisku, aby sprawdzić, czy użytkownik ustawia któryś z czasów.
pusta pętla () {
// Utrzymuj czas
utrzymuj czas();
// Sprawdź, czy czas na alarm!
if((godzina == godzina_a && minuta == minuta_a && !cicho) || alarm){tone(głośnik, 2000, 500); // Wysyłaj do głośnika dźwięk 2000 Hz przez 500 ms
opóźnienie (500); // Opóźnij 500 ms if(!alarm){ // Jeśli alarm jest wyłączony, włącz go
}
}
// Jeśli użytkownik wyciszy alarm, naciskając przycisk cichy, przestań alarmować, jeśli(alarm && !quieted && digitalRead(quiet)){
alarm = fałszywy;
wyciszony = prawda; }
// Zresetuj alarm if(!alarm && quieted && minute != minute_a){ quieted = false;
}
// Sprawdź, czy ustawione piny są wysokie, a jeśli tak, zwiększ odpowiednią wartośćif(digitalRead(set_hr) && hour < 12){
godzina++;
printTimes();
Obalić();
}
else if (digitalRead(set_hr) && godzina == 12){ godzina = 1;
printTimes();
Obalić();
}
w przeciwnym razie{}
if(digitalRead(set_min) && minuta < 59){
minuta++;printTimes();
Obalić();
}
else if (digitalRead(set_min) && minuta == 59){ minuta = 0;
printTimes();
Obalić();
}
else{}if(digitalRead(set_am_pm) && am_pm){
am_pm = fałsz;
printTimes();
Obalić();
}
else if (digitalRead(set_am_pm) && !am_pm){ am_pm = true;printTimes();
Obalić();
}
else{}if(digitalRead(set_hr_a) && godzina_a < 12){
godzina_a++;
printTimes();
Obalić();
}
else if (digitalRead(set_hr_a) && hour_a == 12){hour_a = 1;
printTimes();
Obalić();
}
else{}if(digitalRead(set_min_a) && minuta_a < 59){
minuta_a++;
printTimes();
Obalić();
}
else if (digitalRead(set_min) && minute_a == 59){minute_a = 0;
printTimes();
Obalić();
}
else{}if(digitalRead(set_am_pm_a) && am_pm_a){
am_pm_a = fałsz;
printTimes();
Obalić();
}
else if (digitalRead(set_am_pm_a) && !am_pm_a){am_pm_a = true;
printTimes();
Obalić();
}
w przeciwnym razie{}
}
Krok 13:
5. Tutaj zauważysz kilka podprogramów, które stworzyłem - debounce() i printTimes(). Funkcja Debounce() służy do upewnienia się, że odczytujemy przyciski tylko raz. Ponieważ Arduino skanuje tysiące razy na sekundę, może pomyśleć, że przycisk został naciśnięty kilka razy, gdy zamierzano go odczytać tylko raz. Debounce() zamrozi program do momentu zwolnienia przycisku. printTimes() aktualizuje ekran LCD, ale ponieważ było to kilka poleceń, wpisałem je raz, a następnie mogę wywołać podprogram za każdym razem, gdy zmieni się wartość czasu.
// Gdy którykolwiek z przycisków jest wciśnięty, pozostań w tej funkcji, a następnie opóźnij 250 ms.
nieważne odbicie (){
while(digitalRead(set_hr) || digitalRead(set_min) ||
digitalRead(set_am_pm) || digitalRead(set_hr_a) ||
digitalRead(set_min_a) || digitalRead (set_am_pm_a)) {} opóźnienie (250);
}
// Wyświetla zaktualizowane czasy, jeśli są jakieś zmiany
void printTimes(){
Serial.zapis(12);
Serial.print("Aktualny czas:");
Zapis.seryjny(148);
jeśli (godzina < 10){
Serial.print("0");
}
Serial.print(godzina);
Serial.print(":");
jeśli (minuta < 10){
Serial.print("0");
}
Serial.print(minuta);Serial.print(":");
jeśli (drugi < 10) {
Serial.print("0");
}
Serial.print(drugi);
jeśli (przed południem){
Serial.print("PM");
}
w przeciwnym razie{
Serial.print("AM");
}
Serial.zapis(168);
Serial.print("Zestaw alarmów dla:");
Serial.zapis(188);
if(godzina_a < 10){
Serial.print("0");
}
Serial.print(godzina_a);
Serial.print(":");
jeśli (minuta_a < 10){
Serial.print("0");
}
Serial.print(minuta_a);
jeśli (am_pm_a){
Serial.print("PM");
}
w przeciwnym razie{
Serial.print("AM");
}
}
// Zwiększ parametry czasu void
utrzymuj czas(){
etime = millis() - aktualny_czas;
if(etime >= 1000 && sekunda < 59){
drugi++;
cur_time = mili();
printTimes();
}
else if(etime >= 1000 && sekunda == 59 && minuta < 59){ sekunda = 0;
minuta++;
cur_time = mili();
printTimes();
}
else if(etime >= 1000 && sekunda == 59 && minuta == 59 && godzina < 12){
drugi = 0; minuta =
0; godzina++; cur_time =
mili(); printTimes();
}
inaczej if(etime >= 1000 && sekunda == 59 && minuta == 59 && godzina == 12){
drugi = 0; minuta =
0; godzina = 1; am_pm =
! przed południem;
cur_time = mili();
printTimes();
}
w przeciwnym razie{}
}
Krok 14:
6. To wszystko!
Skompiluj, prześlij i gotowe!
Zalecana:
Inteligentne światło z recyklingu budzika: 8 kroków (ze zdjęciami)
Upcycled Alarm Clock Smart Light: W tym projekcie przetwarzam całkowicie zepsuty nakręcany budzik. Tarczę zegara zastąpiono 12 diodami LED, podświetlanymi przez pasek LED wokół krawędzi zegara. 12 diod LED informuje o czasie, a pasek LED jest zaprogramowany tak, aby działał jako alarm, obracając
Konwerter tekstu na mowę Arduino za pomocą LM386 - Mówiący projekt Arduino - Biblioteka Talkie Arduino: 5 kroków
Konwerter tekstu na mowę Arduino za pomocą LM386 | Mówiący projekt Arduino | Biblioteka Talkie Arduino: Cześć, w wielu projektach wymagamy, aby arduino mówił coś w rodzaju mówiącego zegara lub podawał niektóre dane, więc te instrukcje przekonwertujemy tekst na mowę za pomocą Arduino
Przekaźnik budzika Arduino: 6 kroków (ze zdjęciami)
Przekaźnik budzika Arduino: Mam wiele problemów z wstawaniem wcześnie rano, zwłaszcza jeśli ostatniej nocy nie spałem. Zasadniczo ten projekt pozwala na otwarcie przekaźnika w ustawionym czasie za pomocą klawiatury i lcd. Ten przekaźnik może sterować wieloma urządzeniami z włączania
Głośnik budzika: 9 kroków
Budzik Loudener: niezawodny (zmodyfikowany) budzik, który obudzi zmarłych. Złożyłem to w całość po tym, jak włamało się na mnie kilka alarmów nakręcających. Jest to w zasadzie elektroniczny budzik zmodyfikowany tak, aby uruchamiał dzwonek alarmowy. Ponieważ jestem prawie w śpiączce, kiedy śpię
Palnik zasilany przez USB! Ten projekt może przepalić plastik/drewno/papier (zabawny projekt musi być również bardzo drobny): 3 kroki
Palnik zasilany przez USB! Ten projekt może palić się przez plastik/drewno/papier (zabawny projekt musi być również bardzo cienki): NIE WOLNO TEGO UŻYWAĆ Z USB!!!! Dowiedziałem się, że może uszkodzić twój komputer ze wszystkich komentarzy. mój komputer jest w porządku. Użyj ładowarki do telefonu 600mA 5V. użyłem tego i działa dobrze i nic nie może zostać uszkodzone, jeśli użyjesz wtyczki bezpieczeństwa, aby zatrzymać zasilanie