Sensoren, foreslått av Instructables under kallenavnet AdnanA61, lar deg oppdage kortbølget infrarød stråling fra kilder som fjernkontroller, brann, glødelamper og solen. Den reagerer ikke på en annen form for infrarød stråling - langbølget, hvis kilder alle er gjenstander oppvarmet til vanlige temperaturer. hjemmelaget produkt produserer to typer signaler: analog og diskret, den andre av dem er dannet av en komparator, hvis terskel blir justerbar. Begge signalene kan brukes begge på Arduino, og til andre enheter med eller uten mikrokontroller. Følgende er et annet kortdesign, kretsen er ikke forskjellig:
Sensoren er laget på en av de to komparatorene til mikrokretsen LM393, den andre kan brukes til å løse et annet problem om ønskelig. Hvis du ikke bruker den, er det bedre å koble begge inngangene til en vanlig ledning, og la utgangen være uten tilkobling.
Opplegget er designet slik at det ikke er veldig praktisk å lese det. De tre punktene som er utpekt som A0 må være koblet sammen. To poeng utpekt som D0 - også. Så det blir klart hva som er koblet til og hvordan det fungerer. Ingen gåter. Hvis du monterer sensoren fra designeren, vil utspenningen av kammen på brettet som følger med i settet være som følger:
Selvfølgelig, på et provisorisk brett, trykt eller brødbrett, kan denne pinout være laget for å være praktisk for deg. Du kan kontrollere brettet i aksjon og justere komparatorens terskel umiddelbart etter montering, ganske enkelt ved å levere strøm, takket være lysdioden ombord. Den andre LED-en lyser kontinuerlig når strømmen er på. Deretter kan du koble sensoren til Arduino og teste den analoge utgangen med denne skissen:
// kopier denne koden i ideen til arduino fra denne linjen
// note: - denne koden er for analog verdi
int-sensor = A0; // initialisere den analoge pinnen
int summer = 3; // initialisere summer-pin
int-verdi;
ugyldig oppsett () {
Serial.begin (9600);
pinMode (sensor, INPUT); // måling av pinnemodustypen til pinnen som inngang eller utgang
pinMode (summer, OUTPUT);
}
void loop () {
verdi = analogRead (sensor); // lese valus fra sensoren
verdi = kart (verdi, 0,1023,0255); // kartlegging av verdien fra 0 til 1023 vekt / vekt 0 til 255
digitalWrite (summer, verdi); // slå av og på summeren med den tilordnede verdien
}
Og digitalt - med en annen skisse:
// kopier denne koden i ideen til arduino fra denne linjen
// note: - denne koden er for digital verdi
int sensor_digital = 2; // initialisere den digitale pinnen
int summer = 3;
int-verdi;
ugyldig oppsett () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (summer, OUTPUT);
}
void loop () {
verdi = digitalRead (sensor_digital); // lese den digitale datoen fra sensoren
digitalWrite (summer, verdi); // slå av og på summeren
}
Når alt fungerer, kan du skrive programmer som implementerer algoritmer med større kompleksitet. For eksempel for at en robot "redd" for å nærme seg en flamme eller en kraftig glødelampe for ikke å bli dårligere. Og han gjør den riktige tingen, siden det å skade sensortavla i sterk oppvarming i mindre enn 100 mm avstand kan skade det.