Auton peruutusanturipiiri hälytyksellä

Auton peruutusanturipiiri hälytyksellä

Tässä viestissä aiomme rakentaa auton peruutusanturin hälytyspiirin käyttämällä arduino-, ultraääni-anturia ja 2,4 GHz: n lähetin-vastaanotinmoduulia. Tämä projekti voi olla lisäominaisuus autollesi, jos siinä ei ole sisäänrakennettuja pysäköintiantureita.



Johdanto

Ehdotetulla projektilla on samanlainen toiminnallisuus kuin perinteisellä pysäköintianturilla, kuten auton ja esteen välinen etäisyys LCD-näytöllä ja äänimerkkihälytys.

Ehdotettua projektia voidaan käyttää kiinteänä pysäköintianturina, ts. Autotallissasi olevana anturina tai liikkuvana pysäköintianturina, ts. Anturina, joka on sijoitettu auton takaosaan, jos olet valmis ottamaan pienen riskin johdottaaksesi projektin auton sähköjärjestelmällä.





Projektin motivaatio on kuitenkin rakenna kiinteä pysäköintianturi joka voidaan rakentaa ilman riskiä.

Arduinoa käyttävässä pysäköintianturin hälytysprojektissa on kaksi osaa, lähetin, joka koostuu ultraäänianturista, arduinosta, summerista ja 2,4 GHz: n lähetin-vastaanotinmoduulista. Tämä piiri mittaa auton ja esteen välisen etäisyyden.



Vastaanotin koostuu 2,4 GHz: n lähetinmoduulista, arduino- ja 16x2 LCD-näytöstä.

Vastaanotinpiiri sijoitetaan auton sisälle 9 V: n akulla virtalähteenä. Vastaanotin näyttää auton ja esteen välisen etäisyyden metreinä.

Lähetin lähettää anturitiedot auton sisällä olevaan vastaanottimeen 2,4 GHz: n linkin kautta. Tiedonsiirtoyhteys muodostetaan NRF24L01-moduulilla.

Katsotaan nyt NRF24L01-moduulin yleiskatsaus.

Kuva NRF24L01:

NRF24L01-moduuli

Tämä moduuli on suunniteltu luomaan kaksisuuntainen tiedonsiirtoyhteys kahden mikrokontrollerin välille. Se toimii SPI-yhteyskäytännöllä. Siinä on 125 erilaista kanavaa ja sen suurin tiedonsiirtonopeus on 2Mbps. Sen teoreettinen enimmäiskantama on 100 metriä.

Nastan kokoonpano:

Se toimii 3,3 V: lla, joten 5 voltin Vcc-päätelaite voi tappaa sen. Se voi kuitenkin hyväksyä 5 V: n datasignaalit mikro-ohjaimilta.

Siirrytään nyt projektin lähettimeen.

Pysäköintianturin hälytyslähettimen piiri

Piiri on kytketty NRF24L01-moduulilla, jossa on 5 johtoa, jotka on kytketty arduinon digitaalisiin I / O-nastoihin ja loput kahdesta 3,3 V: iin ja maahan. Tappi # 2 on kytketty transistorin kantaan, joka antaa äänimerkin.

Ultraäänianturin virtaliittimet on kytketty 5V: iin ja GND ja A0 on kytketty liipaisintappiin ja A1 on kytketty anturin kaiutappiin.

Anturin etäisyystiedot lähetetään NRF24L01-moduulin kautta vastaanottimeen.

-------------------------------------------------- ----------------------------------------- Lataa kirjastotiedosto seuraavasta linkistä: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

Lähettimen ohjelma:

//----------Program Developed by R.Girish-------------//
#include
#include
RF24 radio(7,8)
const byte address[][6] = {'00001', '00002'}
const int trigger = A0
const int echo = A1
const int buzzer = 2
float distance
float result
long Time
boolean state = false
boolean dummystate = 0
void setup()
{
pinMode(trigger, OUTPUT)
pinMode(buzzer, OUTPUT)
pinMode(echo, INPUT)
radio.begin()
radio.openWritingPipe(address[1])
radio.openReadingPipe(1, address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
while(!radio.available())
radio.read(&dummystate, sizeof(dummystate))
radio.stopListening()
if(dummystate == HIGH)
{
for(int j = 0 j <10 j++)
{
const char text[] = 'Connection:OK !!!'
radio.write(&text, sizeof(text))
delay(100)
}
}
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
delay(1000)
}
void(* resetFunc) (void) = 0
void loop()
{
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result > 2.00)
{
const char text[] = 'CAR NOT IN RANGE'
radio.write(&text, sizeof(text))
}
if(result 1.90)
{
const char text[] = 'Distance = 2.0 M'
radio.write(&text, sizeof(text))
}
if(result 1.80)
{
const char text[] = 'Distance = 1.9 M'
radio.write(&text, sizeof(text))
}
if(result 1.70)
{
const char text[] = 'Distance = 1.8 M'
radio.write(&text, sizeof(text))
}
if(result 1.60)
{
const char text[] = 'Distance = 1.7 M'
radio.write(&text, sizeof(text))
}
if(result 1.50)
{
const char text[] = 'Distance = 1.6 M'
radio.write(&text, sizeof(text))
}
if(result 1.40)
{
const char text[] = 'Distance = 1.5 M'
radio.write(&text, sizeof(text))
}
if(result 1.30)
{
const char text[] = 'Distance = 1.4 M'
radio.write(&text, sizeof(text))
}
if(result 1.20)
{
const char text[] = 'Distance = 1.3 M'
radio.write(&text, sizeof(text))
}
if(result 1.10)
{
const char text[] = 'Distance = 1.2 M'
radio.write(&text, sizeof(text))
}
if(result 1.00)
{
const char text[] = 'Distance = 1.1 M'
radio.write(&text, sizeof(text))
}
if(result 0.90)
{
state = true
const char text[] = 'Distance = 1.0 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(700)
digitalWrite(buzzer, LOW)
delay(700)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 1.0)
{
state = false
}
}
}
if(result 0.80)
{
state = true
const char text[] = 'Distance = 0.9 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(600)
digitalWrite(buzzer, LOW)
delay(600)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.90)
{
state = false
}
}
}
if(result 0.70)
{
state = true
const char text[] = 'Distance = 0.8 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer, LOW)
delay(500)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.80)
{
state = false
}
}
}
if(result 0.60)
{
state = true
const char text[] = 'Distance = 0.7 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(400)
digitalWrite(buzzer, LOW)
delay(400)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.70)
{
state = false
}
}
}
if(result 0.50)
{
state = true
const char text[] = 'Distance = 0.6 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(300)
digitalWrite(buzzer, LOW)
delay(300)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.60)
{
state = false
}
}
}
if(result 0.40)
{
state = true
const char text[] = 'Distance = 0.5M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(200)
digitalWrite(buzzer, LOW)
delay(200)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.50)
{
state = false
}
}
}
if(result 0.30)
{
state = true
const char text[] = 'Distance = 0.4 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(100)
digitalWrite(buzzer, LOW)
delay(100)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.40)
{
state = false
}
}
}
if(result <= 0.30)
{
const char text[] = ' STOP!!!'
radio.write(&text, sizeof(text))
digitalWrite(buzzer, HIGH)
delay(3000)
digitalWrite(buzzer, LOW)
resetFunc()
}
delay(200)
}
//----------Program Developed by R.Girish-------------//

Lähetin lopetetaan.

Vastaanotin:

Vastaanottimessa on 16x2 LCD-näyttö etäisyyden mittaamisen näyttämiseksi. Näyttöyhteys on annettu alla:

Pysäköintianturin hälytys LCD-näyttöpiiri

Säädä 10K-potentiometriä parempaan katselukontrastiin.

Yllä oleva kaavio on muu vastaanotinpiiri. Arduinon nollaamiseksi on käytettävissä painike, jos 2,4 GHz: n yhteysyhteyttä ei ole muodostettu.

Vastaanotinpiiri on sijoitettu auton sisälle. Se voi olla virtaa 9 V: n akusta. Vastaanotin voidaan sijoittaa roskakoriin, mikä saattaa tehdä autostasi hyvännäköisen. Roskakori voidaan sijoittaa autoon mittariston tai minkä tahansa sopivan paikan yläpuolelle.

Vastaanottimen ohjelma:

//--------Program Developed by R.Girish-------//
#include
#include
#include
LiquidCrystal lcd(7, 6, 5, 4, 3, 2)
RF24 radio(9,10)
const byte address[][6] = {'00001', '00002'}
const int dummy = A0
boolean dummystate = 0
void setup()
{
Serial.begin(9600)
lcd.begin(16, 2)
pinMode(dummy , INPUT)
digitalWrite(dummy, HIGH)
radio.begin()
radio.openReadingPipe(1, address[1])
radio.openWritingPipe(address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
dummystate = digitalRead(dummystate)
radio.write(&dummystate, sizeof(dummystate))
delay(10)
radio.startListening()
if(!radio.available())
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Connection not')
lcd.setCursor(0,1)
lcd.print('established')
delay(50)
}
}
void loop()
{
if(radio.available())
{
char text[32] = ''
radio.read(&text, sizeof(text))
lcd.clear()
lcd.setCursor(0,0)
lcd.print(text)
lcd.setCursor(0,1)
lcd.print('----------------')
}
}
//--------Program Developed by R.Girish-------//

Nyt vastaanotin päättyy.

Anturin sijoittaminen kiinteäksi pysäköintianturiksi:

Anturin sijoittaminen liikkuvaksi pysäköintianturiksi:

Siirrettävässä pysäköintitunnistimessa lähettimen ultraäänianturi sijoitetaan auton takaosaan, virta saadaan auton akusta. Sen tulisi olla kytketty niin, että kun sammutat sytytyksen, arduinon on katkaistava virta.

Vastaanotin voidaan sijoittaa sisäpiiriin, kuten edellä mainittiin.

Kuinka käyttää tätä pysäköintitunnistinprojektia (kiinteä tyyppi)

• Kytke lähetin ensin päälle, mene autollesi ja kytke virta vastaanottimeen. Jos lähettimen ja vastaanottimen välinen yhteys on muodostettu, se näyttää ”Connection: OK” ja näyttää auton ja anturin välisen etäisyyden.

• Jos näytössä lukee ”Yhteyttä ei muodostettu”, paina vastaanottimen mukana toimitettua painiketta.

• Se voi näyttää ”Auto ei ole kantama-alueella”, jos tölkki on kaukana ultraäänianturista.

• Vie auto varovasti taaksepäin tai eteenpäin pysäköintialueellesi.

• Kun auton ja anturin välinen etäisyys on alle 1,0 metriä, summeri antaa äänimerkin.

• Kun lähestyt anturia lähempänä, äänimerkkien nopeus kasvaa, kun auto saavuttaa 1 jalan tai 0,3 metriä, näyttö kehottaa pysäyttämään auton ja sinun on pysähdyttävä.

• Lähetin nollautuu ja siirtyy automaattisesti tyhjäkäynnille. Sammuta vastaanotin autossa. Jos virtalähde on lähetin akulla, sammuta se myös.

Kuinka käyttää tätä pysäköintitunnistimen hälytyspiiriä (mobiilipysäköintianturi)

• Aikaisemmin annettu ohje on samanlainen, jos vastaanottimen näytössä lukee ”Car not in range”. Autosi on kaukana esteestä.

• Kun sammutat moottorin, lähetinpiirin on sammutettava. Sammuta vastaanotinpiiri manuaalisesti.

Kirjoittajan prototyyppi:

Lähetin:

Vastaanotin:

Pysäköintianturin hälytys prototyyppi


Edellinen: Yleinen ESC-piiri BLDC- ja generaattorimoottoreille Seuraava: Suurivirtainen moottorinohjauspiiri Arduinoa käyttämällä