Indholdsfortegnelse:
- Trin 1: Tilslutningsinstruktioner
- Trin 2:
- Trin 3:
- Trin 4:
- Trin 5:
- Trin 6:
- Trin 7:
- Trin 8:
- Trin 9: Programmeringsinstruktioner
- Trin 10:
- Trin 11:
- Trin 12:
- Trin 13:
- Trin 14:
Video: Arduino vækkeurprojekt: 14 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I dette projekt vil vi bruge Arduino Uno til at styre en LCD -skærm for at vise den aktuelle tid og tid, som en alarm er indstillet til. Vi vil bruge knapper til at indstille hver gang.
Materialer:
- Arduino Uno -
- Breadboard -
- Jumper Wires (x13+) -
- 10 kohm modstande (x4) -
- LCD -skærm -
- 7 knapper-https://vilros.com/collections/raspberry-pi-acces…
- Piezo -højttaler -
Trin 1: Tilslutningsinstruktioner
1. Tilslut en jumperledning fra 5V -stiften på Arduino til en af + skinnerne på brødbrættet.
Trin 2:
2. Tilslut en jumperledning fra GND -stiften på Arduino til - skinnen ved siden af + skinnen, du valgte på brødbrættet.
Trin 3:
3. Tilslut LCD -skærmen til strøm, jord og TX -pin (pin 1).
Trin 4:
4. Placer 7 knapper på brødbrættet med benene på tværs af hullet i brødbrættet.
Trin 5:
5. Placer 10 kohm -modstande fra - skinnen med GND -stiften forbundet til den nederste venstre ben på knapperne.
Trin 6:
6. Placer jumperwires mellem knappernes nederste højre ben og 5V -skinnen på dit brødbræt.
Trin 7:
7. Anbring jumperkabler mellem stifter 6, derefter 8-13, og tappen på knappen, som modstanden er forbundet til.
Trin 8:
8. Anbring derefter din Piezo -højttaler på brødbrættet, og tilslut pin 7 til strømstiften, derefter en 100 ohm modstand til jorden.
Trin 9: Programmeringsinstruktioner
1. Oversigt: Dette projekt vil bede brugeren om at indstille den aktuelle tid på startstrømmen på displayet den aktuelle tid og den tid, alarmen er indstillet til. Knapperne tilsluttet ovenfor bruges til at indstille hver gang. Fra venstre mod højre indstilles de aktuelle timer, indstillede aktuelle minutter, indstillede aktuelle AM eller PM, alarmtimer, alarmminutter, alarm AM eller PM indstilles. Den sidste knap bruges til at dæmpe alarmen, når den lyder.
Trin 10:
2. Den første ting, vi skal gøre, er at initialisere vores variabel, vi skal bruge.
// Initialiser variabler, der skal bruges i timen = 0; // Time for aktuel tid int minut = 0; //
Minut for den aktuelle tid int sekund = 0; // Andet for den aktuelle tid
int time_a = 0; int // Time for alarmtid
minut_a = 0; // Minut for alarmtid
bool am_pm = falsk; // AM/PM skift flag. Falsk er AM, sand er PM
bool am_pm_a = falsk; // AM/PM skifteflag til alarm. Falsk er AM, sand er PM
int set_hr = 13; // Brug pin 13 til at indstille time
int set_min = 12; // Brug pin 12 til at indstille minutint
sæt_am_pm = 11; // Brug pin 11 til at indstille am/pm
int set_hr_a = 10; // Brug pin 10 til at indstille time for alarm int set_min_a = 9; // Brug pin 9 til at indstille minut for alarm int set_am_pm_a = 8; // Brug pin 8 til at indstille am/pm til alarm
int -højttaler = 7; // Pin til brug til højttalerint stille = 6; // Pin for at stoppe højttaleren
bool alarm = falsk; // Flag for at skifte for at blive ved med at være alarmerende
bool quieted = falsk; // Flag, der viser stille, er ikke blevet trykket
int cur_time = 0; // Variabel for aktuel tid
int etime = 0; // Variabel for forløbet tid
Trin 11:
3. Dernæst skal vi konfigurere LCD -skærmen og fortælle brugeren at indstille den aktuelle tid. Da dette kun skal gøres én gang, gør vi det i installationsrutinen.
ugyldig opsætning () {
// Opsætning af LCD -skærm
Serial.begin (9600); // Initialiser seriel ved 9600 baud
Serial.write (17); // Tænd baglyset
Serial.write (24); // Tænd for displayet med markøren og uden blink
Serial.write (12); // Ryd skærmen
Serial.write (128); // Flyt markøren til øverste venstre hjørne // Indstil pinModes pinMode (set_hr, INPUT); 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 (højttaler, OUTPUT);
pinMode (stille, INPUT);
// Ved første strøm, skal brugeren indstille det aktuelle tidspunkt. Serial.print ("Indstil det aktuelle tidspunkt"); forsinkelse (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Gem det aktuelle tidspunkt}
Trin 12:
4. Derefter holder vi i loop -rutinen styr på tiden og læser knapstatus for at se, om brugeren indstiller et af tidspunkterne.
void loop () {
// Hold tid
keepTime ();
// Kontroller, om det er tid til at alarmere!
hvis ((time == time_a && minut == minut_a &&! stille) || alarm) {tone (højttaler, 2000, 500); // Udsend en lyd på 2000 Hz til højttaleren i 500 ms
forsinkelse (500); // Forsink 500 ms, hvis (! Alarm) {// Hvis alarmen er slået fra, skal du tænde den
}
}
// Hvis brugeren dæmper alarmen ved at trykke på den stille knap, skal du stoppe alarmen, hvis (alarm &&! Quieted && digitalRead (quiet)) {
alarm = falsk;
stille = sandt; }
// Nulstil alarmen hvis (! Alarm && quieted && minute! = Minute_a) {quieted = false;
}
// Kontroller, om de indstillede stifter går højt, og stig i givet fald den tilsvarende værdi if (digitalRead (set_hr) && time <12) {
time ++;
printTimes ();
debounce ();
}
ellers hvis (digitalRead (set_hr) && time == 12) {time = 1;
printTimes ();
debounce ();
}
andet{}
hvis (digitalRead (set_min) && minut <59) {
minut ++; printTimes ();
debounce ();
}
ellers hvis (digitalRead (set_min) && minut == 59) {minut = 0;
printTimes ();
debounce ();
}
ellers {} hvis (digitalRead (set_am_pm) && am_pm) {
am_pm = falsk;
printTimes ();
debounce ();
}
ellers hvis (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
ellers {} hvis (digitalRead (set_hr_a) && time_a <12) {
time_a ++;
printTimes ();
debounce ();
}
ellers hvis (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
debounce ();
}
ellers {} hvis (digitalRead (set_min_a) && minut_a <59) {
minut_a ++;
printTimes ();
debounce ();
}
ellers hvis (digitalRead (set_min) && minut_a == 59) {minut_a = 0;
printTimes ();
debounce ();
}
ellers {} hvis (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = falsk;
printTimes ();
debounce ();
}
ellers hvis (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
andet{}
}
Trin 13:
5. Her vil du bemærke et par underrutiner, jeg har oprettet - debounce () og printTimes (). Debounce () bruges til at sikre, at vi kun læser knapperne én gang. Da Arduino scanner tusinder af gange i sekundet, tror den måske, at der blev trykket på knappen flere gange, når du kun havde til hensigt at læse den en gang. Debounce () fryser programmet, indtil knappen slippes. printTimes () opdaterer LCD -skærmen, men da det var flere kommandoer, skrev jeg dem en gang og kan derefter ringe til underprogrammet når som helst en tidsværdi ændres.
// Mens der trykkes på en af knapperne, skal du blive i denne funktion og derefter forsinke 250 ms.
void debounce () {
mens (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} forsinkelse (250);
}
// Udskriver de opdaterede tider, hvis der er ændringer
void printTimes () {
Serial.write (12);
Serial.print ("Aktuel tid:");
Serial.write (148);
hvis (time <10) {
Serial.print ("0");
}
Seriel.print (time);
Serial.print (":");
hvis (minut <10) {
Serial.print ("0");
}
Serial.print (minut); Serial.print (":");
hvis (anden <10) {
Serial.print ("0");
}
Serial.print (andet);
hvis (am_pm) {
Serial.print ("PM");
}
andet{
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Alarm indstillet til:");
Serial.write (188);
hvis (time_a <10) {
Serial.print ("0");
}
Serial.print (time_a);
Serial.print (":");
hvis (minut_a <10) {
Serial.print ("0");
}
Serial.print (minut_a);
hvis (am_pm_a) {
Serial.print ("PM");
}
andet{
Serial.print ("AM");
}
}
// Øg tidsparametrene ugyldige
keepTime () {
etime = millis () - cur_time;
hvis (etime> = 1000 && sekund <59) {
andet ++;
cur_time = millis ();
printTimes ();
}
ellers hvis (etime> = 1000 && second == 59 && minut <59) {second = 0;
minut ++;
cur_time = millis ();
printTimes ();
}
ellers hvis (etime> = 1000 && second == 59 && minut == 59 && time <12) {
andet = 0; minut =
0; time ++; cur_time =
millis (); printTimes ();
}
ellers hvis (etime> = 1000 && sekund == 59 && minut == 59 && time == 12) {
andet = 0; minut =
0; time = 1; am_pm =
! am_pm;
cur_time = millis ();
printTimes ();
}
andet{}
}
Trin 14:
6. Det er det!
Kompilér og upload, og du er færdig!
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
RC -sporet robot ved hjælp af Arduino - Trin for trin: 3 trin
RC Tracked Robot Using Arduino - Step by Step: Hey guys, I are back with another cool Robot chassis from BangGood. Håber du har gennemgået vores tidligere projekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot med Robotic Arms og The Badland Braw
DIY Arduino robotarm, trin for trin: 9 trin
DIY Arduino robotarm, trin for trin: Denne vejledning lærer dig, hvordan du bygger en robotarm selv