'Knock terug' - A Knock navolging van Arduino (3 / 4 stap)

Stap 3: De schets

De volgende uploaden naar je Arduino.

/ * ECHO Klop Sensor

Deze sketch leest een piëzo-element op te sporen een kloppen geluid.
Een analoge pin leest en vergelijkt het resultaat met een ingestelde drempel resultaat.
Als het resultaat groter dan de drempel is, slaat het de waarde van millis() naar een matrix.
Na een bepaalde periode zonder extra stoten, zijn de stoten afgespeeld door het apparaat.

Gemaakt door Dan Nicholson < http://dannicholson.co.uk>
Gebaseerd op "Klop Sensor" gemaakt van 25 maart 2007 door David Cuartielles < http://www.0j0.org> gewijzigd 30 Aug 2011 door Tom Igoe

*/

Deze constanten niet gewijzigd:
Const int ledPin = 9;         aangesloten op digital pin geleid
Const int zoemer = 8;                           uitvoer zoemer aangesloten op digital pin.
Const int knockSensor = A0;    de piezo is aangesloten op de analoge pin 0
Const int drempel = 100;     drempelwaarde om te beslissen wanneer het gedetecteerde geluid wordt geklopt of niet
Const int arraySize = 20;   Grootte van knock matrix (u kunt dit verwijderen in de functies en sizeof() gebruiken als u liever)
Const int replayWait = 2000;    Aantal milliseconden dat moet worden gewacht voordat het herhalen klop patroon

deze variabelen zal veranderen:
int sensorReading = 0;         variabele de waarde gelezen van de pin van de sensor opslaan
niet-ondertekende lange stoten [arraySize];         Klop 'buffer' - slaat timing van elke knock klaar voor herhalen.
int knockPos = 0;     Huidige positie binnen klopt matrix
unsigned long lastKnock = false;         Tijd van laatste knock

VOID Setup {}
pinMode (ledPin, OUTPUT);    de ledPin verklaren als OUTPUT
pinMode (zoemer, OUTPUT);                      zoemer pin declareren als OUTPUT
Serial.begin(9600);          de seriële poort gebruiken
}

void loop {}
sensorReading = analogRead(knockSensor); Lees de sensor
Als (lastKnock & & (lastKnock + replayWait) < millis()) replayKnocks(); Replay klopt als laatste klop ouder dan de vastgestelde wachttijd was
anders als (sensorReading > = drempel) handleKnock(sensorReading); Als knock gedetecteerd, omgaan met
delay(30);
}

VOID handleKnock(int reading)
{
lastKnock = millis();
Als (knockPos < arraySize)
{
klopt [knockPos ++] = lastKnock; Timing en increment positie variabele opslaan
Flash(false);
Debug output
Serial.Print ("kloppen:");
Serial.println(Reading);
}
anders
{
Serial.println ("Buffer volledige");
}
}
VOID flitser (Booleaanse buzz)
{
digitalWrite (ledPin, hoge);   de LED inschakelen (HIGH is het spanningsniveau)
Als (gezoem) Toon (zoemer, 1000);
delay(50);
digitalWrite (ledPin, laag);   het uitschakelen van de LED (LOW is het spanningsniveau)
Als (gezoem) noTone(buzzer);
}
VOID replayKnocks()
{
int i;
lastKnock = false;
Serial.println("Replaying");
voor (ik = 0; ik < knockPos; ik = i + 1)
{
int prev = i-1;
Als de vorige (prev < 0) = 0;
niet-ondertekende lange d = (stoten [i] - knocks[prev]);
Als (d > 50) d = d-50;
delay(d);
Serial.println(i);
Flash(true);
}
knockPos = 0; Reset aanwijzer;
}

Gerelateerde Artikelen

Draadloze programmering van Arduino

Draadloze programmering van Arduino

ik heb het opbouwen van robots voor een paar jaar nu en een van de dingen die ik meest frustrerende gevonden heb is tijdens het testen en debuggen. Er lijkt altijd te zijn een noodzaak voor een USB-kabel die kan krijgen in de manier waarop en beperke
YourDuino: HandBat - Handheld ultrasone Radar met behulp van Arduino

YourDuino: HandBat - Handheld ultrasone Radar met behulp van Arduino

HandBat is een handheld van ultrasone Radar die stuurt pulsen van echografie en luistert naar de Echos, als een vleermuis. Het is bedoeld voor gebruik door de slechtziende mensen of navigatie in het donker.Handbat is gehuisvest in een goedkope ($3.97
Obstakel te vermijden met behulp van Arduino Robot

Obstakel te vermijden met behulp van Arduino Robot

Hey kerels in dit instructable zullen we zien hoe maak je een autonome obstakel te vermijden Robot.This robot is ontworpen en geprogrammeerd op een zodanige wijze dat het voorkomt botsing. De robot in principe in een voorwaartse richting beweegt en w
Snelheidsmeter met behulp van Arduino en Processing

Snelheidsmeter met behulp van Arduino en Processing

Hallo allemaal, dit is mijn eerste Instructables publicatie. Ik ga vertellen u hoe maak je een snelheidsmeter met behulp van Arduino en Processing. Het koele ding over het gebruik van is verwerking hier, dat u uw snelheidsmeter look cool zoals degene
Eenvoudige Wav speler met behulp van Arduino

Eenvoudige Wav speler met behulp van Arduino

Praten over met behulp van Arduino om muziek te spelen, is het de Arduino MP3 schild niet het eerste ding dat je verzinnen? Of misschien sommige geeks zullen overwegen over tone() functie? Ze zijn niet de dingen die ons onderwerp gaat over vandaag. W
RC zender voor USB-Gamepad met behulp van Arduino

RC zender voor USB-Gamepad met behulp van Arduino

Waarom moet ik dit doen?Als het gaat om vliegen RC vliegtuigen die gebruikmaakt van een simulator kunnen zijn een geweldige manier om je vaardigheden tijdens het laagseizoen of zelfs voor te bereiden voor uw eerste vlucht. Het grote nadeel aan het ge
Een geavanceerde benadering van programmering van Arduino & AVR

Een geavanceerde benadering van programmering van Arduino & AVR

Dit instructable is een must read voor iedereen die vertrouwd is met core AVR chips en Arduino.Nou, om meer specifieke, bij het lezen van de instructable, zal u zitten kundig voor:1) weten het juiste verschil tussen AVR en Arduino.2) programmering Ar
De Wireless, obstakel detectie, piepen Robot met behulp van Arduinos!

De Wireless, obstakel detectie, piepen Robot met behulp van Arduinos!

Dit is een belemmering van het draadloos gecontroleerde, autonome robot opsporen!Een tijdje terug had ik maakte van dit Instructable en wilde maken sommige belangrijke verbeteringen sinds.De volgende zijn de robot de kenmerken:-1.he de draadloos geco
WIFI plant controlesysteem op basis van Arduino MEGA en ESP8266

WIFI plant controlesysteem op basis van Arduino MEGA en ESP8266

Vandaag gaan we om u te tonen onze eerste experiment op het Internet van dingen. Voor dit doel besloten we om het gebruik van een Arduino MEGA in plaats van een Arduino UNO. Dat komt omdat Arduino MEGA heeft meer dan één seriële poort en dit feit laa
Nieuwe software uploaden naar Trinity met behulp van Arduino [Jak nahrát software Ken Trinity with Arduino]

Nieuwe software uploaden naar Trinity met behulp van Arduino [Jak nahrát software Ken Trinity with Arduino]

[ČESKY NÍŽE]Hallo dudes! Hier leert u hoe om te uploaden van nieuwe firmware naar Trinity synth met behulp van de Arduino IDE.Meer info over Trinity is hier: http://www.bastl-instruments.com/Deze methode is om te worden gebruikt voor het bijwerken va
Voorbeeld van de webserver van Arduino wifi redback

Voorbeeld van de webserver van Arduino wifi redback

Een arduino wifi Redback kan worden gebruikt als een webserver. In het voorbeeld van de webserver van wifi redback beschikbaar in de bibliotheek CuHead toont perfect ons hoe om dit te doen. Ik ga u door het lopen, zodat u het beter begrijpen kunt.Sta
Ontwikkeling van een ATtiny firefly project met behulp van Arduino en het is IDE

Ontwikkeling van een ATtiny firefly project met behulp van Arduino en het is IDE

Ik zag onlangs een interessant project door Karl Lunt waarmee een ATtiny13 nabootsen een firefly (http://www.seanet.com/~karllunt/fireflyLED.html). Dit op zich is zeker niet uniek, maar het kreeg me denken over een van mijn vroege microcontroller pro
Power systeem frequentie bepaling met behulp van Arduino

Power systeem frequentie bepaling met behulp van Arduino

InleidingNetstroom wordt over het algemeen verdeeld op 50 of 60 Hz.This project is gericht op "Bereken de frequentie van levende ac power systeem met behulp van Arduino" kit en kleine transformator ckt setup. Dit project is gebouwd door ons team
Hoe te maken A Keypad deur vergrendelen met behulp van Arduino

Hoe te maken A Keypad deur vergrendelen met behulp van Arduino

Je heb ooit gedacht wat u kunt doen met de oude dvd-schijf... Nou draaide ik het in een koele deur vergrendeling unit...Wat die heeft u nodig1. de Arduino Uno2. een oude Dvd-station3. er wordt een toetsenblok (ik nam het uit oude telefoon)4. Lm293d m