INHOUDSOPGAWE:
- Stap 1: Aansluitingsinstruksies
- Stap 2:
- Stap 3:
- Stap 4:
- Stap 5:
- Stap 6:
- Stap 7:
- Stap 8:
- Stap 9: programmeringsinstruksies
- Stap 10:
- Stap 11:
- Stap 12:
- Stap 13:
- Stap 14:
Video: Arduino -wekkerprojek: 14 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
In hierdie projek gebruik ons die Arduino Uno om 'n LCD -skerm te beheer om die huidige tyd en tyd te wys waarvoor 'n alarm ingestel is. Ons gebruik elke keer knoppies om in te stel.
Materiaal:
- Arduino Uno -
- Breadboard -
- Jumper Wires (x13+) -
- 10 kohm weerstande (x4) -
- LCD -skerm -
- 7 knoppies-https://vilros.com/collections/raspberry-pi-acces…
- Piezo -luidspreker -
Stap 1: Aansluitingsinstruksies
1. Koppel 'n jumperdraad van die 5V -pen op die Arduino aan een van die + relings op die broodbord.
Stap 2:
2. Koppel 'n jumperdraad van die GND -pen op die Arduino aan die - rail langs die + rail wat u op die broodbord gekies het.
Stap 3:
3. Koppel die LCD -skerm aan op krag, grond en die TX -pen (pen 1).
Stap 4:
4. Plaas 7 knoppies op die broodbord met die pote oor die gaping in die broodbord.
Stap 5:
5. Plaas 10 kohm -weerstande van die - rail met die GND -pen daaraan gekoppel aan die onderste penne van die knoppies.
Stap 6:
6. Plaas springdrade tussen die regterkantste pen van die knoppies en die 5V -reling op u broodbord.
Stap 7:
7. Plaas springdrade tussen penne 6, dan 8-13, en die pen op die knoppie waarmee die weerstand gekoppel is.
Stap 8:
8. Plaas dan u Piezo -luidspreker op die broodbord en verbind pen 7 met die kragpen, dan 'n weerstand van 100 ohm aan die grond.
Stap 9: programmeringsinstruksies
1. Oorsig: Hierdie projek sal die gebruiker vra om die huidige tyd op aanvanklike krag op die skerm die huidige tyd en die tyd waarop die alarm ingestel is, in te stel. Die knoppies wat hierbo gekoppel is, sal elke keer gebruik word om in te stel. Van links na regs word die huidige uur, die huidige minuut, die huidige AM of PM ingestel, die alarmuur, die alarmminuut, die alarm AM of die PM ingestel. Die laaste knoppie word gebruik om die alarm stil te maak wanneer dit klink.
Stap 10:
2. Die eerste ding wat ons moet doen, is om ons veranderlike wat ons gaan gebruik, te initialiseer.
// Initialiseer veranderlikes wat gebruik moet word in uur = 0; // Uur vir huidige tyd int minuut = 0; //
Minuut vir huidige tyd int tweede = 0; // Tweede vir die huidige tyd
int uur_a = 0; int // Uur vir alarmtyd
minuut_a = 0; // Minute vir alarmtyd
bool am_pm = vals; // AM/PM wissel vlag. Onwaar is AM, waar is PM
bool am_pm_a = vals; // AM/PM skakel vlag vir alarm. Onwaar is AM, waar is PM
int set_hr = 13; // Gebruik pen 13 om die uur in te stel
int set_min = 12; // Gebruik pin 12 om die minuut int te stel
stel_am_pm = 11; // Gebruik speld 11 om am/pm in te stel
int set_hr_a = 10; // Gebruik pin 10 om die uur in te stel vir alarm int set_min_a = 9; // Gebruik pin 9 om die minuut in te stel vir alarm int set_am_pm_a = 8; // Gebruik pin 8 om am/pm vir alarm in te stel
int spreker = 7; // Speld om te gebruik vir luidspreker: nie stil nie = 6; // Speld om die luidspreker te stop
bool alarm = vals; // Vlag om te skakel om aan te hou alarm
bool stilgemaak = vals; // Vlag wat stil wys, is nie ingedruk nie
int cur_time = 0; // Veranderlik vir huidige tyd
int etime = 0; // Veranderlik vir verloop van tyd
Stap 11:
3. Vervolgens moet ons die LCD -skerm opstel en die gebruiker vertel om die huidige tyd in te stel. Aangesien dit slegs een keer gedoen moet word, doen ons dit in die opstelroetine.
ongeldige opstelling () {
// Stel 'n LCD -skerm op
Serial.begin (9600); // Initialiseer Serial op 9600 baud
Reeks.skryf (17); // Skakel die agterlig aan
Reeks.skryf (24); // Skakel die skerm aan met die wyser en sonder om te knip
Reeks.skryf (12); // Maak die skerm skoon
Reeks.skryf (128); // Beweeg wyser na linker boonste hoek // Stel pinModes pinMode (set_hr, INVOER); 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 (luidspreker, UITGANG);
pinMode (stil, INVOER);
// Stel die gebruiker die huidige tyd op aanvanklike krag in. Serial.print ("Stel die huidige tyd in"); vertraging (2000);
Reeks.skryf (12);
printTimes ();
cur_time = millis (); // Stoor die huidige tyd}
Stap 12:
4. Dan hou ons in die looproetine die tyd dop en lees ons die status van die knoppies om te sien of die gebruiker een van die tye instel.
leemte -lus () {
// Hou tyd
keepTime ();
// Kyk of dit tyd is om te alarm!
as ((uur == uur_a && minuut == minuut_a &&! stilgemaak) || alarm) {toon (spreker, 2000, 500); // Gee 'n geluid van 2000 Hz aan die luidspreker vir 500 ms
vertraging (500); // Vertraag 500 ms as (! Alarm) {// As alarm af is, skakel dit aan
}
}
// As die gebruiker die alarm stilmaak deur op die stil knoppie te druk, stop die alarm as (alarm &&! Stilgemaak && digitalRead (stil)) {
alarm = vals;
stilgemaak = waar; }
// Stel die alarm terug as (! Alarm && stilgemaak && minute! = Minute_a) {stil = valse;
}
// Kontroleer of die stelpenne hoog word, en verhoog die ooreenstemmende waarde as (digitalRead (set_hr) && uur <12) {
uur ++;
printTimes ();
debounce ();
}
anders as (digitalRead (set_hr) && hour == 12) {uur = 1;
printTimes ();
debounce ();
}
anders {}
if (digitalRead (set_min) && minute <59) {
minuut ++; printTimes ();
debounce ();
}
anders as (digitalRead (set_min) && minute == 59) {minute = 0;
printTimes ();
debounce ();
}
anders {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = vals;
printTimes ();
debounce ();
}
anders as (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
anders {} if (digitalRead (set_hr_a) && hour_a <12) {
uur_a ++;
printTimes ();
debounce ();
}
anders as (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
debounce ();
}
anders {} if (digitalRead (set_min_a) && minute_a <59) {
minute_a ++;
printTimes ();
debounce ();
}
anders as (digitalRead (set_min) && minute_a == 59) {minute_a = 0;
printTimes ();
debounce ();
}
anders {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = vals;
printTimes ();
debounce ();
}
anders as (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
anders {}
}
Stap 13:
5. Hier sien u 'n paar onderroetines wat ek geskep het - debounce () en printTimes (). Debounce () word gebruik om seker te maak dat ons slegs die knoppies een keer lees. Aangesien die Arduino duisende kere per sekonde skandeer, dink hy miskien dat die knoppie 'n paar keer ingedruk is as u dit net een keer wou lees. Debounce () sal die program vries totdat die knoppie losgemaak word. printTimes () werk die LCD -skerm op, maar aangesien dit verskeie opdragte was, het ek dit een keer getik en dan kan ek die subroutine bel wanneer die tydwaarde verander.
// Terwyl enige van die knoppies ingedruk word, bly in hierdie funksie en vertraag dan 250 ms.
leegte debounce () {
terwyl (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} vertraging (250);
}
// Druk die opgedateerde tye af as daar veranderinge is
void printTimes () {
Reeks.skryf (12);
Serial.print ("Huidige tyd:");
Reeks.skryf (148);
as (uur <10) {
Serial.print ("0");
}
Reeks.afdruk (uur);
Serial.print (":");
as (minuut <10) {
Serial.print ("0");
}
Serial.print (minuut); Serial.print (":");
as (tweede <10) {
Serial.print ("0");
}
Serial.print (tweede);
as (am_pm) {
Serial.print ("PM");
}
anders {
Serial.print ("AM");
}
Reeks.skryf (168);
Serial.print ("Alarm gestel vir:");
Reeks.skryf (188);
as (uur_a <10) {
Serial.print ("0");
}
Reeks.afdruk (uur_a);
Serial.print (":");
as (minute_a <10) {
Serial.print ("0");
}
Reeks.afdruk (minute_a);
as (am_pm_a) {
Serial.print ("PM");
}
anders {
Serial.print ("AM");
}
}
// Verhoog die tydparameters leeg
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
tweede ++;
cur_time = millis ();
printTimes ();
}
anders as (etime> = 1000 && second == 59 && minute <59) {second = 0;
minuut ++;
cur_time = millis ();
printTimes ();
}
anders as (etime> = 1000 && second == 59 && minute == 59 && uur <12) {
tweede = 0; minuut =
0; uur ++; cur_time =
millis (); printTimes ();
}
anders as (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
tweede = 0; minuut =
0; uur = 1; am_pm =
! am_pm;
cur_time = millis ();
printTimes ();
}
anders {}
}
Stap 14:
6. Dit is dit!
Stel op en laai op en u is klaar!
Aanbeveel:
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Arduino Uno visvoerder in 6 goedkoop en maklike stappe !: 6 stappe
Arduino Uno Fish Feeder in 6 goedkoop en maklike stappe !: 'n Bietjie agtergrond kan dus nodig wees vir hierdie projek. Mense met troeteldiervisse het waarskynlik dieselfde probleem as ek gehad: vakansies en vergeetagtigheid. Ek het voortdurend vergeet om my vis te voer, en ek het altyd probeer om dit te doen voordat dit gebeur het
Akoestiese opheffing met Arduino Uno stap-vir-stap (8-stappe): 8 stappe
Akoestiese levitasie met Arduino Uno Stap-vir-stap (8-stappe): ultrasoniese klankomvormers L298N Dc vroulike adapter kragbron met 'n manlike DC-pen Arduino UNOBreadboard Hoe werk dit: Eerstens laai u kode op na Arduino Uno (dit is 'n mikrobeheerder toegerus met digitale en analoog poorte om kode (C ++) om te skakel
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: 3 stappe
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: wil u 'n eenvoudige en interessante projek maak met Arduino wat terselfdertyd baie nuttig en moontlik lewensreddend kan wees? Indien wel, het u op die regte plek gekom om te leer iets nuuts en vernuwend. In hierdie pos gaan ons
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmering -- Arduino Neno: 6 stappe (met foto's)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmering || Arduino Neno: …………………………. Teken asseblief in op my YouTube -kanaal vir meer video's ……. .Die projek handel oor hoe om 'n kleinste en goedkoopste arduino ooit te koppel. Die kleinste en goedkoopste arduino is arduino pro mini. Dit is soortgelyk aan arduino