Sensorn, som föreslagits av Instructables under smeknamnet AdnanA61, låter dig upptäcka kortvågs infraröd strålning från källor som fjärrkontroller, eld, glödlampor och solen. Den svarar inte på någon annan form av infraröd strålning - långvåg, vars källor alla är föremål uppvärmda till vanliga temperaturer. hemgjorda produkt producerar två typer av signaler: analog och diskret, den andra av dem bildas av en komparator, vars tröskel görs justerbar. Båda signalerna kan appliceras båda på Arduino, och till andra enheter med eller utan mikrokontroller. Följande är en annan kortdesign, kretsen är inte annorlunda:
Sensorn är tillverkad på en av de två komparatorerna i LM393-mikrokretsen, den andra kan användas för att lösa ett annat problem om så önskas. Om du inte använder den är det bättre att ansluta båda ingångarna till en gemensam tråd och lämna utgången utan anslutning.
Schemat är utformat så att läsning av det inte är särskilt bekvämt. De tre punkterna som anges som A0 måste vara anslutna tillsammans. Två poäng betecknade D0 - också. Så det blir tydligt vad som är kopplat till och hur det fungerar. Inga gåtor. Om du monterar sensorn från konstruktören kommer kammen på brädet som ingår i satsen att vara följande:
Naturligtvis, på ett provisoriskt bräde, tryckt eller brödskiva, kan denna utspänning göras så att den är bekväm för dig. Du kan kontrollera kortet i aktion och justera komparatorns tröskel omedelbart efter montering, helt enkelt genom att tillhandahålla ström, tack vare lysdioden ombord. Den andra lysdioden tänds kontinuerligt när strömmen är på. Sedan kan du ansluta sensorn till Arduino och testa den analoga utgången med denna skiss:
// kopiera den här koden i ide of arduino från den här raden
// note: - den här koden är för analogt värde
int-sensor = A0; // initialisera den analoga stiftet
int summer = 3; // initiera summerstiftet
int-värde;
ogiltig installation () {
Serial.begin (9600);
pinMode (sensor, INPUT); // fastställa stiftets typ av stift som ingång eller utgång
pinMode (summer, OUTPUT);
}
void loop () {
värde = analogRead (sensor); // läsa valus från sensorn
värde = karta (värde, 0,1023,0255); // kartlägga värdet från 0 till 1023 b / w 0 till 255
digitalWrite (summer, värde); // slå på eller stänga av summern med det mappade värdet
}
Och digitalt - med en annan skiss:
// kopiera den här koden i ide of arduino från den här raden
// Obs: - den här koden är för digitalt värde
int sensor_digital = 2; // initiera den digitala stiftet
int summer = 3;
int-värde;
ogiltig installation () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (summer, OUTPUT);
}
void loop () {
värde = digitalRead (sensor_digital); // läsa den digitala datan från sensorn
digitalWrite (summer, värde); // slå på eller stänga av summern
}
När allt fungerar kan du skriva program som implementerar algoritmer med större komplexitet. Till exempel för en robot som är "rädd" för att närma sig en låga eller en kraftfull glödlampa för att inte försämras. Och han gör rätt sak, eftersom det kan skada det att hålla sensorkortet vid källor för stark uppvärmning på mindre än 100 mm.