Ultrasone Garage Parking Assistant met Arduino en een ATtiny85 (3 / 4 stap)

Stap 3: De Code uploaden naar de Arduino

Eerst uit, Download en installeren de nieuwste Arduino IDE (1.0.5) hier is een link naar de download pagina http://arduino.cc/en/Main/Software.
We nu wat te installeren van de bibliotheek van de NewPing, hier is een link op de instructies voor downloaden en installeren van de NewPing bibliotheek http://playground.arduino.cc/Code/NewPing.

Als u van plan over het gebruik van de ATtiny moet vervolgens deel van het bestand NewPing.cpp worden bewerkt. Er zijn twee grote sectie van de code gewijd aan timers, commentaar aller dit uit. NewPing.h kunnen worden verlaten alleen.

Het is belangrijk aan deze bibliotheek gebruiken en niet aan de afstandsmeting handmatig uitvoeren. De reden is omdat wanneer de ping-sensor niet terug een afstand, het voor een volle seconde in plaats van meerdere malen per seconde vertragen zal zoals het hoort. Dit is een probleem bij het trekken van de auto en er is geen antwoord van de eenheid voor een korte periode. In die tijd kan een auto verplaatsen van verscheidene voeten en leveren het apparaat nutteloos. Deze bibliotheek corrigeert die dus bewaren responsiviteit uitgeven.

De pin-regeling zal worden maar je ervoor kiest om je arduino board aansluiten, dus zorg ervoor dat deze code werkt met uw circuit aanpassen. Vergeet niet, als u gebruik wilt maken pwm om de helderheid van uw kleur precies goed zorg ervoor dat u pinnen met een ~ symbool voor uw LED of verwijzen naar de ATtiny85 pinout diagram voor pwm pinnen. Ik bevatte geen elk gebruik van de blauwe pin, simpelweg omdat de ATtiny85 niet genoeg pinnen hoeft zonder reprograming de resetpin om I/O. Ik heb niet de moeite om dit te doen.

U kunt sommige nieuwe kleuren toevoegen of veranderen aan uw humeur. Als u een nauwkeuriger indicatie nodig, u kunt verlaagt u de waarde van het bereik naar 1 of 2 (Houd er rekening mee dat de +/-, dus 2 voor de variabele bereik krijgt een 4 inch bereik) of brengen het hoger hebt u voldoende vrije ruimte. U kunt ook bewerken de afstanden waartegen elke kleur van de LED zal veranderen. Ik vond de 120 en 50 inch te zijn precies goed.

UPDATE: LED is verplaatst naar pinnen 0 & 1. De yellow()-methode heeft bijgewerkt met PWM. Het is wellicht om te vinden welke waarden werken het beste met uw LED.

Code

#include < NewPing.h > //include de NewPing-bibliotheek

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

waarden voor het bijhouden van
int afstand = 0;
int set = 0;
int bovenste = 0;
int lagere = 0;
int bereik = 3;                                   bereik is +/-zodat is het dubbele van de waarde in inches
int count = 0;
Boole lastButton = laag;          bijhouden van de status van de knop
Boole currentButton = laag;
int vorige = 0;                              bijhouden van afstanden om te bepalen wanneer de auto geparkeerd is
int huidige = 0;

NewPing sonar (0, 1, 500);       constructor voor NewPing sonar (triggerPin, echoPin, max_CM)

VOID Setup
{
pinMode (gLED, OUTPUT);
pinMode (rLED, OUTPUT);
pinMode (buttonPin, INPUT);
}
void loop
{
afstand = sonar.ping_in();                  afstand in inches detecteren
if(Distance == 0) afstand = 500;          Als geen afstand wordt gelezen, vastgesteldop max afstand
huidige = afstand;                                om te controleren hoe lang auto heeft geparkeerd om energiebesparende

delay(100);                                             Traag programma down - opslaan batterij?

currentButton = debounce(lastButton);            leest de status van de knop en voert ontdendering, fixes van onverwachte knop gedrag

Als (lastButton == LOW & & currentButton == HIGH) //when knop geduwd, set gewenste afstand voor parkeren
{
instellen = afstand;                                nieuwe variabele voor afstand gemeten
flashGreen();                                  groene LED knippert 3 keer
flashGreen();
flashGreen();
}

lastButton = currentButton;            Reset knop status

bovenste = set + bereik;                        +/-inch tolerantiebereik
lager = set - assortiment;

Als (afstand < = bovenste & & afstand > = zachter) //within ingesteld gebied, stop!
{
afstand fluctueert sommige resulterend in valse beweging detectie
Als (huidige == vorige || huidige == vorige + 1 || huidige == vorige - 1)
{
Graaf ++;                           graaf te verhogen als de auto is niet verplaatst
}

anders
{
Graaf = 0;                          Graaf kwalijk nemen, indien zich een verandering van de significat op afstand
}

als afstand doest verandering voor 250 cycli (30 sec) uitschakelen van LED -> macht besparingswijze
Als (graaf > = 250)
{
Off();
Graaf = 250;                        forever verhogen niet
}
anders
{
Red();                                   binnen bereik, stoppen. rode LED op
}

}
if(Distance > Upper)
{
Graaf = 0;                            Als de auto beweegt langzaam genoeg, het kan nooit de graaf in bovenstaande code gereset, we opnieuw weer, alleen in geval

Als (afstand > set + 120 =) //sensor wordt innacurate op afstanden veel verder dan 120 inch
{//no auto in de garage uit te schakelen LED
Off();
}
Als (afstand < set + 120 & & afstand > set + 50) //car wordt gedetecteerd
{//if afstand is minder dan ingestelde + 120 inch en groter is dan de set + 50 inch
Green();
}
Als (afstand < = set + 50 & & afstand > bovenste) //wihtin 50 inches van bepaalde afstand, vertragen
{
Yellow();
}
}
if(Distance < Lower) //car te dicht is, u moet back-up
{
Graaf = 0;                                                                         dezelfde situatie voor als auto beweegt heel langzaam
flashRed();
}

vorige = afstand;                                                        Update afstanden
}                                                                                            //end of loop

debounce methode om te corrigeren voor spanningspieken die leiden onverwacht gedrag tot
Booleaanse debounce(boolean last)
{
Booleaanse huidige = digitalRead(buttonPin);
Als (laatste! = huidige)
{
delay(5);
huidige = digitalRead(buttonPin);
}
terugkeer huidige;
}

kleur methoden;
VOID green()
{
digitalWrite (rLED, hoge);                 vanwege de pull-up weerstand circuit, is code omgekeerd
digitalWrite (gLED, laag);
}
VOID red()
{
digitalWrite (gLED, hoge);
digitalWrite (rLED, laag);
}
VOID yellow()
{
digitalWrite (rLED, 0);
digitalWrite (gLED, 100);
}
VOID flashRed()
{
digitalWrite (gLED, hoge);                     rode LED Flash
digitalWrite (rLED, laag);
delay(100);
digitalWrite (rLED, hoge);
delay(100);
}
VOID flashGreen()
{
digitalWrite (rLED, hoge);
digitalWrite (gLED, laag);                  groene LED knippert wanneer knop ingedrukt
delay(50);
digitalWrite(gLED,HIGH);
delay(50);
}
VOID off()
{
digitalWrite (gLED, hoge);                  uitschakelen van de LED
digitalWrite (rLED, hoge);
}

Einde van Code

Kopieer en plak de code in de Arduino IDE en sloeg uploaden.

Nogmaals, zorg ervoor dat de pin-codes om uw circuit en breng andere wijzigingen die u wilt bewerken.

Gerelateerde Artikelen

Digitale Parking Assistant met geautomatiseerde Proximity alarm.

Digitale Parking Assistant met geautomatiseerde Proximity alarm.

Dit een digitale parking assistent waarin de bestuurder hoe ver hij / zij van de muur van de garage. Na het oversteken van een bepaalde grens, het systeem zal leiden tot een alarm en de bestuurder zal waarschuwen dat hij / zij komt in de nabijheid va
Ultrasone sensor HC-SR04 met Arduino

Ultrasone sensor HC-SR04 met Arduino

Meer info op:http://www.theorycircuit.com/interface-ultrasonic-sensor-HC-SR-04-with-Arduino/Facebook link: https://www.facebook.com/pages/Theorycircuit/82511...De HC-SR 04 is beroemde ultrasone bereik sensor, en zijn zeer makkelijk te gebruiken met v
Spraak assistent met behulp van een slimme telefoon en 1Sheeld

Spraak assistent met behulp van een slimme telefoon en 1Sheeld

Iedereen wil graag een stem-assistent zoals JARVIS. Maar het gebrek aan AI (kunstmatige intelligentie) in moderne technologie is de beperkende factor. Met behulp van een Arduino, 1Sheeld schild en een smartphone, kunt u vrijdag (niet JARVIS omdat 1Sh
Krachtige controle met Arduino: Interfacing een lineaire Actuator

Krachtige controle met Arduino: Interfacing een lineaire Actuator

In dit specifieke artikel zullen we bespreken hoe eenvoudig het is om controle van krachtige mechanische kracht met behulp van een microcontroller zoals de Arduino en een lineaire Actuator van DC lineaire actuatoren Inc.Stap 1: MicrocontrollersRaspbe
Hoe hebben plezier met Arduino (en een Geek in het proces worden)

Hoe hebben plezier met Arduino (en een Geek in het proces worden)

wenst u te verdienen uw geek kaart - pronto? Laat aan de slag! Deze gids zal u start op het pad naar de donkere kant met behulp van de open source-Arduino-platform ontwikkeling en prototyping. Het zal u kennismaken met microcontrollers, te beginnen m
Goedkope draadloze muizenval alarm met behulp van een ATtiny85

Goedkope draadloze muizenval alarm met behulp van een ATtiny85

Een paar weken geleden maakte ik de jaarlijkse expeditie tot onze zolder te halen de Chrismas decoraties. Zoals ik was het passeren van de vakken naar mijn vrouw die realiseerde ik me hadden we sommige ongenode kostgangers, duidelijk door hun uitwerp
Iets regelen met Arduino en een infrarood afstandsbediening

Iets regelen met Arduino en een infrarood afstandsbediening

Hoi, dit is mijn eerste instructable en ik dacht dat ik zou laten zien van een snelle demonstratie van hoe de controle om het even wat zoals LED's, DC-motoren en een heel arsenaal aan andere dingen met een arduino en vrijwel alle infrarood afstandsbe
Het maken van een DIY borstelloze Gimbal met Arduino

Het maken van een DIY borstelloze Gimbal met Arduino

Dit is een verhaal van mijn derde project met goedkope gyro en Arduino.Na de eerdere twee projecten, Gemakkelijk omgekeerd slinger en 3D kalligrafie, ik gedacht heb van het maken van Camera Gimbal met Arduino. Dan had ik drie beleidsregels voor het p
Ultrasone sensor in openFrameworks met behulp van Arduino

Ultrasone sensor in openFrameworks met behulp van Arduino

Dit instructable zal u toelaten om het verzenden van verkennende gegevens naar openFrameworks (van) door middel van een Arduino interfacing met een ultrasone sensor, specifiek de HC-SR04. Deze sensor is bekend voor zijn moeite communiceren met de Ard
Beheersing van een LED met arduino en Wifly schild

Beheersing van een LED met arduino en Wifly schild

Om te demonstreren hoe u apparaten via wifi met behulp van de arduino wifly shield kunt controleren, zal ik schakelaar aan en uit een LED door een http-verzoek te sturen vanuit mijn webbrowser naar het wifly-schild.Vereisten:1. de Arduino uno2. Wifly
Robotic hand met Arduino

Robotic hand met Arduino

Ik heb al knutselen voor een tijdje met Arduino, bouwen een obstakel te vermijden robot en enkele andere projecten waar ik meer kopiëren was dan uitvinden van iets.Na opdoen van enige ervaring, begon ik een nieuw project vanaf nul. Ik wilde een anato
PIR-bewegingsdetector met Arduino: Bediend, laagste Power verbruiksmodus

PIR-bewegingsdetector met Arduino: Bediend, laagste Power verbruiksmodus

Deze video toont snel en gemakkelijke benadering van het stroomverbruik van de ATMEGA 328P te verlagen op basis van Arduino boards Arduino boards met ongeveer 70-75% met behulp van PIR of PID sensoren voor bewegingsdetectie.Dit project introduceert d
Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemaakt van Star Wars bij-St-Model van Bandai.Reageert op geluid en draait zijn hoofd naar toe.Gemaakt met Arduino Nano, een aangepast onderdeel van 3dprinted, microfoons, micro servo.Dit instructable is gemaakt om te delen van de wijzigingen die nod
Bedien uw Tv, Dvd en Audio systeem met Arduino en Android

Bedien uw Tv, Dvd en Audio systeem met Arduino en Android

Hallo iedereen, dit is mijn tweede instructable en mijn eerste in het Engels, dus, sorry voor de fouten.Ik wil delen dit project die het gaat over hoe u kunt uw Tv, DVD en uw audiosysteem met Arduino en een app voor Android gemaakt met app uitvinder.