De sensor, voorgesteld door Instructables onder de bijnaam AdnanA61, stelt je in staat kortegolf infrarood straling te detecteren van bronnen zoals afstandsbedieningen, vuur, gloeilampen en de zon. Het reageert niet op een andere vorm van infraroodstraling - lange golf, waarvan de bronnen allemaal objecten zijn die tot gewone temperaturen worden verwarmd. Zelfgemaakt produceert twee soorten signalen: analoog en discreet, de tweede wordt gevormd door een comparator, waarvan de drempel instelbaar wordt gemaakt. Beide signalen kunnen beide worden toegepast Arduinoen naar andere apparaten met of zonder microcontroller. Het volgende is een ander bordontwerp, het circuit is niet anders:
De sensor is gemaakt op een van de twee vergelijkers van de LM393-microcircuit; de tweede kan worden gebruikt om desgewenst een ander probleem op te lossen. Als u het niet gebruikt, is het beter om beide ingangen met een gemeenschappelijke draad te verbinden en de uitgang niet aangesloten te laten.
Het schema is zo ontworpen dat het niet erg handig is om het te lezen. De drie punten die zijn aangeduid als A0 moeten met elkaar worden verbonden. Twee punten aangeduid als D0 - ook. Zo wordt duidelijk waar het op aansluit en hoe het werkt. Geen raadsels. Als u de sensor van de ontwerper monteert, is de pinout van de kam op het bord in de kit als volgt:
Natuurlijk, op een geïmproviseerd bord, bedrukt of breadboard, kan deze pinout handig voor u worden gemaakt. U kunt het bord in actie controleren en de vergelijkingsdrempel onmiddellijk na montage aanpassen, eenvoudig door stroom te leveren, dankzij de LED aan boord. De tweede LED licht continu op wanneer de stroom is ingeschakeld. Vervolgens kun je de sensor aansluiten op de Arduino en de analoge output testen met deze sketch:
// kopieer deze code in de ide van arduino uit deze regel
// opmerking: - deze code is voor analoge waarde
int sensor = A0; // initialiseren van de analoge pin
int buzzer = 3; // initialiseren zoemerpen
int waarde;
ongeldige setup () {
Serial.begin (9600);
pinMode (sensor, INPUT); // assing the pin mode type of the pin as input or output
pinMode (zoemer, OUTPUT);
}
leegte lus () {
waarde = analogRead (sensor); // het lezen van de valus van de sensor
waarde = kaart (waarde, 0,1023,0,255); // toewijzing van de waarde van 0 tot 1023 z / w 0 tot 255
digitalWrite (zoemer, waarde); // de zoemer in- of uitschakelen met de toegewezen waarde
}
En digitaal - met nog een schets:
// kopieer deze code in de ide van arduino uit deze regel
// opmerking: - deze code is voor digitale waarde
int sensor_digital = 2; // initialiseren van de digitale pin
int buzzer = 3;
int waarde;
ongeldige setup () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (zoemer, OUTPUT);
}
leegte lus () {
waarde = digitalRead (sensor_digital); // het lezen van de digitale dat van de sensor
digitalWrite (zoemer, waarde); // zoemer in- of uitschakelen
}
Wanneer alles werkt, kunt u programma's schrijven die algoritmen met een grotere complexiteit implementeren. Bijvoorbeeld voor een robot die 'bang' is om een vlam te naderen of een krachtige gloeilamp om niet te verslechteren. En hij doet het juiste, aangezien het sensorbord beschadigd kan raken door het op een afstand van minder dan 100 mm tegen sterke warmtebronnen te houden.