De binaire alarmklok Arduino (12 / 16 stap)

Stap 12: Alarmsignaal

Het is vrij gemakkelijk voor het genereren van geluid op de arduino door alleen met behulp van digitalWrite() en delay() om te schakelen van de staat van de pin van de spreker in de juiste frequentie. Maar voor dit project moet ik voortdurend controleren van de knoppen, update de klok en de weergave, zelfs wanneer het alarmsignaal wordt afgespeeld. Daarom moet de goede generatie worden niet-blokkerende, wat betekent dat u niet hoeft te wachten voor de tonen te beëindigen voordat u iets anders kunt doen.

Dus gebruikte ik de Tone library geschreven door Brett Hagman voor het genereren van geluid. Het is een werkelijk aardige bibliotheek die maakt het gemakkelijk om te spelen van verschillende tonen, en beste van allen, het is niet-blokkerende.

Omdat het de melodie moet niet-blokkerende kon niet gebruik ik gewoon een for-lus doorloopt de tonen. In plaats daarvan tweedehands mij if-statements. iedere keer dat die de functie van de melodie is noemde het controles als de laatste Toon gestopt is met spelen, als er het volgende zal beginnen. De "melody", ik heb gebruikt is gewoon C, D, E, F, G, A, B, C eerst speelde men na elkaar, dan iedere andere, vervolgens elke derde, enzovoort.
_______________________________________________________________________

De play_melody() functie:

"INTERNE" VARIABELEN VOOR PLAY_MELODY FUNCTIE:
int melodie [] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4,
NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5};
int melody_length = sizeof(melody) / 2; Melodie de lengte, voor een lus.
sizeof() geeft de grootte van de matrix in bytes, en omdat
een int is 2 bytes, sizeof keert 2 * (aantal arrayelementen)

int i = 0;        lus variabele
Boole reset_loop = waar;
int sprong = 1;     hoeveel notities om te springen in de melodie-matrix
int positie = 0; positie in de matrix van de melodie

VOID play_melody()
{
Als (! () tone_maker.isPlaying())) / / als de laatste Toon is gestopt
{
if(i {
tone_maker.stop();
tone_maker.Play (melodie [standpunt], 300);
Een pauze tussen notities...
delay(300); vervangen door nonblocking.
als (DEBUG)
{/ / Als foutopsporing, verslag lus, Toon, beat, en duur
Serial.Print(Position);
Serial.Print(":");
Serial.Print(Melody[position]);
Serial.Print("\n");
}
positie += sprong;
Als positie groter dan de array is, starten vanaf begin van array:
positie = positie % melody_length;
i ++;
}
anders
{
sprong ++;
Ik = 0;
}
}
}
_______________________________________________________________________

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