Ultrasonic Garage parkering Assistant med Arduino och en ATtiny85 (3 / 4 steg)

Steg 3: Ladda upp koden till Arduino

Först, ladda hem och installera senaste Arduino IDE (1.0.5) här är en länk till data överför sida http://arduino.cc/en/Main/Software.
Vi nu vad man ska installera NewPing biblioteket, här är en länk om att hämta och installera NewPing biblioteket http://playground.arduino.cc/Code/NewPing.

Om du tänker använda ATtiny måste sedan del av filen NewPing.cpp redigeras. Det finns två stora avsnitt i koden ägnas åt timers, kommentera alla här ute. NewPing.h kan lämnas ensam.

Det är viktigt att använda detta bibliotek och inte att utföra avståndsmätning manuellt. Anledningen är att när ping sensorn inte kan returnera ett avstånd, det kommer att försena en full sekund i stället för flera gånger per sekund som det ska. Detta är ett problem när du drar bilen och det finns inget svar från enheten under en kort period. I den tiden kan en bil flytta flera fötter och gör enheten värdelös. Detta bibliotek fixar som utfärdar således maintaing lyhördhet.

PIN-kod kommer att vara men du väljer att koppla upp din arduino ombord, så se till att justera denna kod för att arbeta med din krets. Kom ihåg, om du vill använda pwm för att få din färg ljusstyrka precis rätt se till att använda stift med en ~ symbol för din LED eller hänvisa till ATtiny85 pinut diagrammet för pwm stift. Jag tog inte med någon användning av den blå nålen, helt enkelt eftersom ATtiny85 inte har tillräckligt stift utan reprograming Återställ PIN-koden för att vara I/O. Jag brydde mig inte att göra så.

Du kanske vill lägga till några nya färger eller ändra den upp som passar ditt humör. Om du behöver mer exakta uppgifter, kan du sänka värdet intervall till 1 eller 2 (Tänk på att dess +/-, så en 2 för variabeln utbud kommer att ge en 4 tums intervall) eller ta upp det högre om du har rum att avvara. Du kan också redigera distanserar där varje färg av LED kommer att förändras. Jag hittade 120 och 50 inches vara precis rätt.

Uppdatering: LED har flyttats till stift 0 & 1. Metoden yellow() har uppdaterats för att inkludera PWM. Du kan behöva hitta vilka värden fungerar bäst med din LED.

Koden

#include < NewPing.h > //include NewPing biblioteket

I/O pins
int rLED = 0;
int gLED = 1;
int buttonPin = 2;
int echo = 3;
int trigger = 4;

värden att hålla reda på
int avstånd = 0;
int set = 0;
int övre = 0;
int lägre = 0;
int utbud = 3; utbudet är så det är dubbla värdet i tum
int count = 0;
booleska lastButton = låg; hålla reda på knappen status
booleska currentButton = låg;
int tidigare = 0; hålla reda på avstånd att identifiera när bilen är parkerad
int nuvarande = 0;

NewPing sonar (0, 1, 500); konstruktorn för NewPing sonar (triggerPin, echoPin, max_CM)

void setup()
{
pinMode (gLED, produktionen);
pinMode (rLED, produktionen);
pinMode (buttonPin, ingång);
}
void loop()
{
avståndet = sonar.ping_in(); upptäcka avstånd i tum
IF(Distance == 0) avstånd = 500. om inga avstånd läses in på max avstånd
Nuvarande = avstånd; kontrollera hur länge bilen har parkerat för att komma in energisparläge

Delay(100); Långsam program ner - spara batteri?

currentButton = debounce(lastButton); läser knappen status och utför debounce, fixar oväntade knappen beteende

om (lastButton == låg & & currentButton == hög) //when knappen sköt, ange önskat avstånd för parkering
{
ställa in = avstånd; ny variabel för avståndet mätt
flashGreen(); flimmer grön LED 3 gånger
flashGreen();
flashGreen();
}

lastButton = currentButton; reset knappen status

övre = set + intervall; + /-tums toleransintervallet
lägre = set - utbud;

om (avstånd < = övre & & avstånd > = lägre) //within ange område, sluta!
{
avståndet varierar något som leder till falska rörelse detektering
om (nuvarande == tidigare || nuvarande == tidigare + 1 || nuvarande == tidigare - 1)
{
greve ++; öka räkna om bilen inte har flyttat
}
annat
{
Count = 0; ogillar räkna om det finns en significat förändring i avstånd
}

om avstånd doest förändring för 250 cykler (30 SEK) stänga av LED -> kraft räddningen sätt
om (count > = 250)
{
Off();
count = 250; inte öka forever
}
annat
{
Red(); inom spänna, sluta. röda lysdioden på
}

}
IF(Distance > Upper)
{
Count = 0; om bilen rör sig långsamt nog, det kan aldrig återställa räkningen i ovan kod, vi återställa igen, bara i fall

om (avstånd > = set + 120) //sensor blir innacurate på avstånd mycket längre än 120 tum
{//no bil i garage inaktivera LED
Off();
}
om (avstånd < set + 120 & & avstånd > set + 50) //car upptäcks
{//if avstånd är mindre än set + 120 tum och större än set + 50 tum
Green();
}
om (avstånd < = set + 50 & & avstånd > övre) //wihtin 50 inches av visst avstånd, sakta ner
{
Yellow();
}
}
IF(Distance < Lower) //car är för nära, måste du säkerhetskopiera
{
Count = 0; samma situation för om bilen rör sig mycket långsamt
flashRed();
}

tidigare = avstånd; uppdatera avstånd
} //end av loop

Dämpningstid metod att korrigera för spänningstoppar som orsakar oväntade resultat
Boolean debounce(boolean last)
{
booleska ström = digitalRead(buttonPin);
om (sista! = nuvarande)
{
Delay(5);
Nuvarande = digitalRead(buttonPin);
}
returnera aktuell;
}

färg metoder.
void green()
{
digitalWrite (rLED, hög); på grund av pull-up resistor krets, är koden inverterad
digitalWrite (gLED, låg);
}
void red()
{
digitalWrite (gLED, hög);
digitalWrite (rLED, låg);
}
void yellow()
{
digitalWrite (rLED, 0);
digitalWrite (gLED, 100);
}

void flashRed()
{
digitalWrite (gLED, hög); blixt röd LED
digitalWrite (rLED, låg);
Delay(100);
digitalWrite (rLED, hög);
Delay(100);
}
void flashGreen()
{
digitalWrite (rLED, hög);
digitalWrite (gLED, låg); flimmer grön LED när knappen sköt
Delay(50);
digitalWrite(gLED,HIGH);
Delay(50);
}
void off()
{
digitalWrite (gLED, hög); stänga av lampan
digitalWrite (rLED, hög);
}

Slutet av koden

Kopiera och klistra in koden i Arduino IDE och slå uppladdning.

Igen, måste du redigera pin-koder för att rymma din krets och göra de ändringar du vill.

Se Steg
Relaterade Ämnen

Rörelseaktiverade ljus med Arduino och HC-SR04 sensor

Jag gjorde detta projekt för länge sedan att tända upp i köket när jag öppnar bakdörren.Tanken var när jag öppnar bakdörren, detta ljus som tänds under 15 sekunder och som ger mig tillräckligt med tid att nå strömbrytaren på den motsatta väggen. Före...

Multiplexering med Arduino och 74HC595

74HC595 är en lätt och billig (på cirka 60 cent styck) sätt att öka antalet digitala ut stiften på din Arduino. I denna tutorial ska jag visa dig hur man kör upp till 16 lysdioder med en 74HC595 med hjälp av en teknik som kallas multiplexing. I slutä...

Mugg musik: Förvandla vatten till ett Instrument med Arduino och ChucK

Vad händer om du slå alla ledande yta till ett instrument? Gillar, säga... en mugg vatten? Bäst av allt, är det billigt; du behöver bara $1 värt extra elektriska komponenter (inte inklusive Arduino).För detta projekt, min vän skörd och jag kombinerad...

Säkerhetssystem och tillgång kontroll med Arduino och RFID-

säkerhetssystem och tillgång kontroll med Arduino och RFIDDetta projekt är en evolotuin av mitt första projekt kallat "Arduino - Security System och Access Control"Som ni kan se på bloggen http://arduinobymyself.blogspot.com.br/2012/03/arduino-s...

Hur använder gamla Stepper Motors med Arduino och A4988 Driver

Jag har varit med stegmotorer ett tag nu, och de är fantastiska för alla typer av robotic projekt.Idag kommer jag att dela de saker jag har lärt mig hittills om återanvända gamla stegmotorer bärgades från skrivare. Identifiera stegmotorerStegmotorer...

Power övervakning med Arduino och logga in i Google blad

Sedan senaste veckorna tänkte jag på att göra ett projekt som kan hjälpa mig att hålla ett spår på min dagliga energi användningsområden. I detta projekt använder jag en 30A övervakning styrelse. denna styrelse har 6 strömsensor som kan läsa upp till...

Roligt spel med arduino och bearbetning

Denna tutorial ska show dig hur man gör en första person FPS-shooter i bearbetning med hjälp av en arduino. Detta projekt lämnades till oss som en avslutande tentamen i en teknisk specialkurs, (gymnasieskolan).Video av projektet! :) (Svårt att spela...

Kontroll av en DC motor med Arduino och Visual Basic

Hej vänner detta är mitt första inlägg i instructables.com där jag kommer att försöka ge mer nyhet des ofta.Idag är temat med Arduino och Visual Basic.Det projekt som vi ser idag är controller en dc-motor med Arduino och Visual Basic.För att styra en...

Styra din Tv, Dvd och ljud system med Arduino och Android

Hej alla, detta är min andra instructable och min första på engelska, så, ledsen för misstag.Jag vill dela detta projekt det handlar om hur du kan styra din Tv, DVD och ljudanläggningen med Arduino och en app för Android med app inventor.Om du gillar...

Kapacitans mätare med arduino och 555 timer

KAPACITANS MÄTARE MED ARDUINO OCH 555 TIMER CHIPDetta projekt syftar till att bygga en enkel kapacitans mätare, en enhet för att mäta kapacitans i nanoFarads och microFarad, med en räckvidd på ca 1 nanoFarad till hundratals microFarads.Detta projekt,...

Kontrollera en LED med arduino och Wifly sköld

För att visa hur du kan styra enheter via wifi med hjälp av arduino wifly shield, kommer jag slå på och av en LED genom att skicka en http-begäran från webbläsaren till wifly sköld.Krav:1. Arduino uno2. Wifly sköld3. ledde4. 220 ohm motstånd5. ett pa...

Hur man styr motorer med Arduino och RC mottagare i 10 minuter

Detta är min andra handledning på att kontrollera saker med Arduino och R/C-mottagare. Om du inte har tittat på min första tutorial jag föreslår att du tittar på det första, här: i den här guiden kommer vi att titta på hur man styr motorer också anvä...

Styra DC Motors(PC Fans) med Arduino och Relay board

I detta instructable kommer vi att se utan att gå in i detalj, hur man använder 12V DC motorer (PC Fans) med Arduino och relay board eBlockSteg 1: Konfigurera maskinvara och programvara För att göra det behöver vi viss maskinvara kan du hitta på Inte...

Kontrollerar ledde med Arduino och C#

Hej vänner detta är min första Arduino Tutorial på att kontrollera ett LED med Arduino och C#-program.Du behöverArduinoen1K ResistorLEDProgramvaraArduino programvara - www.arduino.ccMicrosoft visual C# / Visual StudioLED är ansluten till Pin 13.Titta...

Kontrollera en RGB ledde med Arduino och bearbetning

detta instructable (min första inte mindre) visar hur man styr en RGB ledde med bearbetning och arduino.Den viktiga funktionen att vara färg markeras genom att klicka på en bild, RGB-värdet för den pixel du klickar på bearbetas och skickas till den a...

Spela upp ljud på dator med arduino och progduino

Idag kommer jag visa dig hur lätt det är att bygga en enkel spelare och kör det på datorn med arduino och progduino.Läs mer om progduino: http://www.progduino.comSteg 1: Arduino kod - spelaren på din dator.Kopiera koden till din arduino redaktör.void...

Arduino Bluetooth Garage dörrkontroll med sensorer och anpassningsbara Android App

Använda en arduino till aktivera reläer för att öppna garageportar och elektriska dörrlås.En anpassningsbar Android App, ansluter till arduino via lösenordsskyddade bluetooth-ihopparningen.En bluetooth hc-05 modul tar emot kommandon från en android-t...

Räkna objekt med Arduino och Ultrasonic sensor på kunskapsförmedlare produktion

Intro:Detta instructable förklarar hur du använder en ULTRASONIC SENSOR med Arduino att räkna / log olika paket på ett transportband. Instrucable kommer att omfatta den fysiska installationen och programmet i Arduino.Det kommer inte finnas någon info...

Digital parkering Assistant med automatiserad Närhetslarm.

Här en digital parkering assistent som visar föraren hur långt han / hon är från garage väggen. Efter att ha passerat en viss gräns, systemet kommer att utlösa ett larm och kommer att varna föraren att han / hon kommer i närheten till väggen och det...