Stap 3: Stap 3: de ATtiny85-chip programmeren
Ik gebruikte mijn Arduino Uno als de Internet-provider voor het programmeren van de tiny chip, die ik zal niet gaan door de stappen om dit te doen, maar hier is de site die ik gebruikte om het te doen.
http://42bots.com/tutorials/How-to-Program-attiny85-with-Arduino-Uno-Part-1/
http://42bots.com/tutorials/How-to-Program-attiny85-with-Arduino-Uno-Part-2/
Code Overview
De code is zo ontworpen dat een persoon kan zowel instellen en controleren van de lichten zonder verrekening over ongeval. De gebruiker zal de stekker van de sensor in, het 5 seconden voordat het begint testen voor afstand zal geven. Dit geeft de gebruikerstijd om de kamer te verlaten na het instellen van het. Een soortgelijke inspanning in het controleren van de sensor is gebracht, natuurlijk hoe het is geprogrammeerd is dat wanneer het leest de waarde lager is dan 70cm het rode zult gaan. Dit betekent dat telkens wanneer de deur wordt geopend de rode LED zou worden ingeschakeld. Echter de manier waarop het is de gebruiker geprogrammeerd heeft ongeveer 5 seconden voordat er wordt overgeschakeld van groen naar rood.
Binnen de code er is een gedeelte uit de 0 waarden te filteren, komt dit door een probleem met de sensor. Het zal zo nu en dan een willekeurige 0, gooien zodat de code een waarde die gelijk is aan 0 om te voorkomen dat een valse vermelding filtert.
[Edit (2-25-14)]
De ultrasone sensor werkt door het verzenden van een puls signaal uit de verzendende kant, het verzamelen van de puls signaal in de andere kant, dat in wezen een microfoon is en berekening van de tijd het neemt om te ontvangen in microseconden (dat is 1/1000000 van een seconde). Het zal deze duren die was verzameld en deelt door de snelheid van het geluid gemeten in microseconden. Dit geeft als resultaat de afstand in centimeters. De ultrasone sensor werkt het best wanneer wees loodrecht op het object dat het is meten. Het zal werken als het is op een hoek, maar de maximale lezing uit de loodrecht lezing komt.
Dit programma is voortdurend ping signalen afgeven en controleren op onderbrekingen in de verte. Deze manier is het een absolute kans op het vangen van iemand invoeren van de kamer (tenzij natuurlijk ze sneller dan de snelheid van het geluid).
De Code
#include < TinyNewPing.h >
// ---------------------------------------------------------------------------
Code die is geschreven voor de Arduino gebaseerd stil alarm
2-23-14
Gepost op instructables
Gebaseerd op NewPing voorbeeld
// ---------------------------------------------------------------------------
#define TRIGGER_PIN 2 / / Arduino pin gebonden aan pin op de ultrasone sensor te activeren.
#define ECHO_PIN 3 / / Arduino pin gebonden aan echo pin op de ultrasone sensor.
#define MAX_DISTANCE 200 / / maximale afstand die wij wilt pingen voor (in centimeters). Maximale sensor afstand wordt begroot op 400-500cm.
int buffer, afstand;
int groen = 0, rood = 1;
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing installatie van pennen en maximale afstand.
VOID Setup {}
pinMode (groen, uitvoer); Hiermee stelt u de pinnen als uitgang voor de LEDs
pinMode (rood, OUTPUT);
digitalWrite (groen, hoog); Deze sectie is het licht om flash te maken voor ongeveer 5 seconden
delay(500); Ook geeft u een kans om het verlaten van de kamer zonder verrekening van de sensor.
digitalWrite(green,LOW);
delay(500);
digitalWrite (groen, hoog);
delay(500);
digitalWrite(green,LOW);
delay(500);
digitalWrite (groen, hoog);
delay(500);
digitalWrite(green,LOW);
delay(500);
digitalWrite (groen, hoog);
delay(500);
digitalWrite(green,LOW);
delay(500);
digitalWrite (groen, hoog);
delay(500);
digitalWrite(green,LOW);
delay(500);
digitalWrite(green,HIGH); Houdt de groene led op totdat onderbroken
buffer = 200;
}
void loop {}
delay(250); Wachten 250ms tussen pings. 29ms moet de kortste wachttijd tussen pings.
unsigned int ons = sonar.ping(); Ping te sturen, ping tijd in microseconden (VS).
buffer = uS / US_ROUNDTRIP_CM;
if(buffer!=0) {//Sensor geeft valse lezingen dit was om zich te ontdoen van 0 waarden
afstand = buffer;
}
anders
{}
if(Distance<70) //Measuring afstand, om te laten zien dat iemand is geweest in de kamer
{
delay(5000); Wacht 5 seconden geven u een kans om te controleren de knipperende lampjes.
digitalWrite(green,LOW);
doen
{
digitalWrite (rood, hoge); Blijkt dat iemand heeft de deur geopend of kwam de kamer
delay(1000);
digitalWrite(red,LOW);
delay(1000);
} while(1);
}
}