Instructablesin ehdottamalla AdnanA61-lempinimellä varustetun anturin avulla voit havaita lyhytaaltoinfrapunasäteilyn lähteistä, kuten kaukosäätimistä, tulesta, hehkulampuista ja auringosta. Se ei reagoi toiseen infrapunasäteilymuotoon - pitkäaalloon, jonka lähteet ovat kaikki kohteita, jotka ovat lämmitetty normaaliin lämpötilaan. kotitekoinen tuote tuottaa kahden tyyppisiä signaaleja: analogiset ja diskreetit, toisen niistä muodostaa vertailija, jonka kynnyksen on oltava säädettävissä. Molemmat signaalit voidaan käyttää molemmissa Työläs, ja muihin laitteisiin, joissa on tai ei ole mikrokontrolleri. Seuraava on toinen korttirakenne, piiri ei ole erilainen:
Anturi on tehty toiselle LM393-mikropiirin kahdesta vertailimesta, toista voidaan haluttaessa käyttää toisen ongelman ratkaisemiseksi. Jos et käytä sitä, on parempi yhdistää molemmat sen tulot yhteiseen johtoon ja jättää lähtö kytkemättä.
Järjestelmä on suunniteltu siten, että sen lukeminen ei ole kovin kätevää. Kolme pistettä, jotka on merkitty A0: lla, on kytkettävä toisiinsa. Kaksi pistettä, jotka on merkitty D0 - myös. Joten käy selväksi, mihin liittyy ja miten se toimii. Ei arvoituksia. Jos kokoat anturin suunnittelijalta, pakkauksen mukana olevan taulun kampa tulee näkyviin seuraavasti:
Tietysti vaihtotaululle, painetulle tai leipälevylle, tämä pinout voidaan tehdä käteväksi sinulle. Voit tarkistaa levyn toiminnassa ja säätää vertailukynnystä heti kokoonpanon jälkeen yksinkertaisesti syöttämällä virtaa aluksella olevan LEDin ansiosta. Toinen LED-valo palaa jatkuvasti, kun virta on päällä. Sitten voit kytkeä anturin Arduinoon ja testata analogisen ulostulon tällä piirroksella:
// kopioi tämä koodi arduinon ideassa tältä riviltä
// huomautus: - tämä koodi on tarkoitettu analogiselle arvolle
int-anturi = A0; // analogisen nastan alustaminen
int summeri = 3; // summerilaitteen alustaminen
int arvo;
tyhjä asennus () {
Serial.begin (9600);
pinMode (anturi, INPUT); // olettamalla tapin pin-tyyppinen tulo tai lähtö
pinMode (summeri, OUTPUT);
}
tyhjä silmukka () {
arvo = analoginen lukema (anturi); // arvon lukeminen anturilta
arvo = kartta (arvo, 0,1023,0,255); // kartoitetaan arvo välillä 0 - 1023 b / w 0 - 255
digitalWrite (summeri, arvo); // summerin kytkeminen päälle tai pois päältä kartoitetun arvon perusteella
}
Ja digitaalinen - toisella luonnoksella:
// kopioi tämä koodi arduinon ideassa tältä riviltä
// huomautus: - tämä koodi on tarkoitettu digitaaliarvoon
int-anturi_digital = 2; // digitaalisen nastan alustaminen
int summeri = 3;
int arvo;
tyhjä asennus () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (summeri, OUTPUT);
}
tyhjä silmukka () {
arvo = digitalRead (anturi_digital); // digitaalisen datan lukeminen anturilta
digitalWrite (summeri, arvo); // summerin kytkeminen päälle tai pois
}
Kun kaikki toimii, voit kirjoittaa ohjelmia, jotka toteuttavat entistä monimutkaisempia algoritmeja. Esimerkiksi robotille, joka "pelkää" lähestyä liekkiä tai voimakasta hehkulamppua, jotta se ei huonone. Ja hän tekee oikein, koska pitämällä anturilevyä voimakkaan lämmityksen lähteillä alle 100 mm: n etäisyydellä, se voi estää sen.