De binaire alarmklok Arduino (10 / 16 stap)

Stap 10: Knop en sensor code

De code behandeling van de knoppen, is de schakelaar en de touch sensor verdeeld in twee functies hebben, één voor het controleren of de knoppen zijn ingedrukt en één voor het doen van wat de knoppen moet als ze worden ingedrukt, dat wil zeggen de tijd, het instellen van het alarm, snooze en activeren of deactiveren het alarm.

Ik voor het eerst schreef de code met debouncing voor de knoppen, maar later toen ik mijn knoppen die ik merkte testte dat ik lijken niet nodig, dus ik verwijderde de debouncing om minder en makkelijker te lezen van de code, maar ik de functie met debouncing opgenomen in de f_comments_etc van de tab in de schets.

Selectievakje voor knooppersen:
De code controleert als de toetsen worden ingedrukt zijn echt eenvoudig. Het leest gewoon de stand van de knoppen pinnen. De arduinos interne pullup weerstanden worden gebruikt zodat de knoppen Staten zijn hoog als ze niet worden ingedrukt en lage wanneer ze worden ingedrukt.

De touch sensor wordt gelezen met behulp van de bibliotheek van CapSense: touch_sensor.capSense(10) dit zal meten de capaciteit 10 keer en een gemiddelde terug te keren. Afhankelijk van de waarde die het resultaat van de snooze_button_state variabele ingesteld op hoog of laag. Ik heb gemerkt dat wanneer ik mijn hand laat op het deksel van de klok rusten zou ik een waarde rond 150 en met geen hand ongeveer 30 krijgen zal (als ik me goed herinner). dus ik gebruikte 100 als de limiet te wijzigen van de status van de snooze-"button". De waarde desgewenst wijzigen.
______________________________________________________________________

De functie controleert voor knooppersen:

VOID update_buttons_state()
{
hour_button_state = digitalRead(hour_button_pin);
minute_button_state = digitalRead(minute_button_pin);
setting_switch_state = digitalRead(setting_switch_pin);
/ * Lees de snooze touch sensor: * /
if(touch_sensor.capSense(10) > 100) / / deze waarde desgewenst aanpassen
snooze_button_state = laag;
anders
snooze_button_state = hoog;
de als-anders hierboven ik denk korter als kon worden geschreven:
snooze_button_state = (touch_sensor.capSense(10) > 100)? LAAG: HOOG;
}
______________________________________________________________________

Dingen te doen als de knoppen worden ingedrukt:
De schakelaar van de instellingen zal veranderen de twee pointers hours_p en minutes_p te wijzen de variabelen uren en minuten, of alarm_hours en alarm_minutes. De code voor de knoppen uur en minuut zal het gebruiken van deze aanwijzingen, dus wanneer de schakeloptie wijzigt zij het juiste ding; automatisch ingesteld alarm of tijd. De display-functie gebruikt ook de hours_p en minutes_p aanwijzers dus als de schakelaar instellingen op alarm, de alarmtijd wordt weergegeven.

De uur en minuut knoppen verhoging van het aantal uren en minuten door een ieder tijd zij worden ingedrukt.

De snooze-knop moet uitschakelen van het alarmsignaal en stel een snooze-tijd uitschakelen (huidige tijd + 10 minuten) wanneer het signaal opnieuw moet beginnen. het wordt ook de variabele snooze_on ingesteld op true, zal hierdoor de alarmfunctie om te starten om te controleren wanneer de snooze tijd is.

Als de snooze-knop 3 seconden ingedrukt wordt gehouden, zal het het alarm aan of uit schakelen. Een hoge doordringende Toon wordt afgespeeld wanneer het alarm is ingeschakeld en een laag gooide Toon wordt afgespeeld wanneer het alarm wordt uitgeschakeld.

______________________________________________________________________

De functie van de knoppen:

"INTERNE" VARIABELEN VOOR DE FUNCTIE VAN DE KNOPPEN:
Boole first_time_hour = waar;   deze worden gebruikt om ervoor te zorgen dat de uren
Boole first_time_minute = waar; en minuten alleen wordt verhoogd eenmaal elke ToetsIndrukken (KeyPress).
unsigned long snooze_button_timer; gebruikt om bij te houden hoe lang de snooze-knop heeft
is ingedrukt. Wanneer de knop heeft plaatsgevonden naar beneden
een bepaalde hoeveelheid tijd, het alarm zal worden gedraaid
van volledig.
VOID buttons()
{
LAAG == knop ingedrukt
HOOG == knop vrijgegeven
(dit is omdat pullup resistors wordt gebruikt)
/ / Beslissen als we tijd of alarm moet instellen:
(Hierdoor wordt ook het display tonen de alarmtijd)
if(setting_switch_state==low) / / laag = tijdinstelling
{
snooze_button_timer=Millis();
}
}
___________________________________________________________________

Gerelateerde Artikelen

Verstandig klok 3 - geeky alarmklok Arduino gebaseerde

Verstandig klok 3 - geeky alarmklok Arduino gebaseerde

Wise klok 3 is een open-source, zeer hackable geeky klok die veel meer dan de tijd toont. Haar belangrijkste functie is het weergeven van gebruiker-bewerkbare offertes ontvangen van een SD-kaart (zoals die worden gebruikt in foto camera's).Wise klok
Gebouw IllyClock - alarmklok Arduino gebaseerde in een koffie kan

Gebouw IllyClock - alarmklok Arduino gebaseerde in een koffie kan

bijgewerkt 4 Aug 2011Een gestroomlijnde versie is nu hier beschreven.Het doel van dit project is om te bouwen van een wekker die vergelijkbaar is met de gepresenteerd in de video hieronder.Naast de behuizing, de oorspronkelijke functie van IllyClock
Alarmklok Arduino

Alarmklok Arduino

Arduino is een verbazingwekkende machine. Dit project is slechts een van de vele. U kunt uw project volgens de instructable bouwen of uitbreiden naar meer functies als u wilt.We zullen een volledig interactieve arduino aangedreven wekker construeren.
Overschakelen van de alarmklok Arduino

Overschakelen van de alarmklok Arduino

Deze wekker werkt met de volgende producten;Arduino UnoBreadboard2 LEDs1 zoemerjumper dradenEen knop, uit een LED-zaklampStroombron (ik gebruikte mijn laptop, maar u kunt ook een accu)Deze wekker schakelt in en uit gebaseerd op wanneer de knop opent
Schud & wakker

Schud & wakker

Veel koppels ondervinden dit probleem, ze hebben om op een ander tijdstip wakker te worden. Met een normale wekker wakker beiden wanneer het alarm van gaat. Shake & Wake is de oplossing voor dit probleem. De klok met behulp van een draadloze RF signa
Zuiver binaire LED Wandklok met Arduino

Zuiver binaire LED Wandklok met Arduino

Mijn binaire Wandklok is geïnspireerd door vele binaire klokken vond ik op InstructablesLinks:LilyPad Arduino Klok:Binaire klok:Plus enkele andere binaire klok instructables.Maar...Wat ik vond ontbreekt in hen was de omvang en de grootte van het disp
Arduino binaire klok

Arduino binaire klok

Ik heb eindelijk het, de binaire klok de mensen om me heen hoorde me gesproken over voor zo lang. Ik probeerde om dit te maken tijdens de afgelopen kerstvakantie, maar tijd ontbrak, veranderde ik banen 2 keer in de afgelopen 6 maanden... dus dingen e
Arduino inzicht-Beginner LED'S en (16-bits binaire counter)

Arduino inzicht-Beginner LED'S en (16-bits binaire counter)

Hello vrienden...!!! Dit is mijn eerste tutorial op Instructables, in deze tutorial ga ik je laten zien* Het schrijven van een eenvoudig programma voor gloeiende LED-Fractie van LED programma* Leg uit analoge uitgang (PWM)* Maak een eenvoudig project
Arduino binaire klok met LED Matrix

Arduino binaire klok met LED Matrix

Deze site heeft vele mooie berichten beschrijven bouw van binaire klokken. Ik ben vreselijk wankel, echter, en moeite hebben met eventuele solderen. Ik wilde daarom maken mij uit een 8 x 8 MAX7219-gecontroleerde LED-matrix.Stap 1: Lezen van de BCD bi
Mijn Arduino binaire klok

Mijn Arduino binaire klok

Hallo uit ItaliëHoewel veel horloges binaire gemaakt zijn, was mijn project geïnspireerd voornamelijk aan dit:http:// zeer slim en grappig.Ik heb geprobeerd om het ontwerp en om toe te voegen iets persoonlijks.Ik denk dat het een goed resultaat aan h
Arduino binaire Alarm Clock (pocket formaat)

Arduino binaire Alarm Clock (pocket formaat)

ooit wilde een binaire wekker? Ik ook van jou. Dus ik keek rond op Instructables, want er veel goeden rond zijn.Wat is nog beter: ze zijn gebaseerd op de Arduino, een van mijn favoriete speelgoed.Mijn favoriet is deze: Het inspireerde mij veel, en ja
Arduino-Powered binaire Thermometer

Arduino-Powered binaire Thermometer

ik heb onlangs verworven een Arduino Uno en was op zoek naar een cool "getting started"-project. Heb ik besloten om een thermometer, als de kit heb ik alle nodige onderdelen (thermistor, draden, weerstanden, LEDs). Door middel van een paar itera
Binaire metrieke klok; eenvoudig Arduino project.

Binaire metrieke klok; eenvoudig Arduino project.

Dit is een zeer merkwaardig soort klok, die gemakkelijk kan worden gemaakt met eenvoudige voorzieningen.Om te beginnen de verklaring, zou ik willen zeggen dat ik heb altijd al tijd om metrisch. 5 uur zou mid-dag, 7:5 zou driekwart (6:00 pm), enzovoor
Bouwen van een eenvoudige binaire teller met behulp van de Arduino

Bouwen van een eenvoudige binaire teller met behulp van de Arduino

De volgende instructable zal gaan door de stappen voor het bouwen van een eenvoudige binaire teller met behulp van de volgende materialen.1 x Arduino Uno1 x drukknop5 x LED's (maar het aantal bits u wilt uw teller)1 x 10 k ohm weerstand1 x 220 ohm we