Čidlo, navržené společností Instructables pod přezdívkou AdnanA61, umožňuje detekovat krátkovlnné infračervené záření ze zdrojů, jako jsou dálkové ovladače, oheň, žárovky a slunce. Nereaguje na jinou formu infračerveného záření - dlouhou vlnu, jejíž zdroje jsou všechny objekty zahřívány na běžné teploty. Domácí vytváří dva typy signálů: analogový a diskrétní, druhý z nich je tvořen komparátorem, jehož prahová hodnota je nastavitelná. Oba signály lze aplikovat na oba Arduinoa na jiná zařízení s mikrokontrolérem nebo bez něj. Toto je další návrh desky, obvod se neliší:
Senzor je vyroben na jednom ze dvou komparátorů mikroobvodu LM393, druhý lze v případě potřeby použít k vyřešení dalšího problému. Pokud jej nepoužíváte, je lepší propojit oba jeho vstupy společným drátem a výstup nechat nepřipojený.
Schéma je navrženo tak, aby čtení nebylo příliš pohodlné. Tři body označené jako A0 musí být spojeny dohromady. Dva body označené jako D0 - také. Takže je jasné, s čím je spojeno a jak to funguje. Žádné hádanky. Pokud sestavíte senzor od projektanta, bude pin na hřebenu na desce obsažené v sadě následující:
Samozřejmě, na provizorní desce, tištěné nebo prkénku, může být tento pinout vyroben tak, aby vám vyhovoval. Můžete zkontrolovat desku v akci a upravit práh komparátoru ihned po montáži, jednoduše pomocí napájení, díky LED na desce. Druhá LED se trvale rozsvítí, když je napájení zapnuto. Pak můžete připojit senzor k Arduino a otestovat analogový výstup pomocí této skici:
// zkopírujte tento kód v ideu arduina z tohoto řádku
// note: - tento kód je pro analogovou hodnotu
int senzor = A0; // inicializace analogového pin
int bzučák = 3; // inicializační pin bzučáku
int hodnota;
neplatné nastavení () {
Serial.egegin (9600);
pinMode (senzor, INPUT); // zadávání typu režimu pinů jako vstupu nebo výstupu
pinMode (bzučák, VÝSTUP);
}
void loop () {
value = analogRead (senzor); // čtení hodnoty ze senzoru
value = map (value, 0,103,0,255); // mapování hodnoty od 0 do 1023 b / w 0 do 255
digitalWrite (bzučák, hodnota); // zapnutí nebo vypnutí bzučáku podle mapované hodnoty
}
A digitální - s další skici:
// zkopírujte tento kód v ideu arduina z tohoto řádku
// note: - tento kód je pro digitální hodnotu
int sensor_digital = 2; // inicializace digitálního pin
int bzučák = 3;
int hodnota;
neplatné nastavení () {
Serial.egegin (9600);
pinMode (sensor_digital, INPUT);
pinMode (bzučák, VÝSTUP);
}
void loop () {
value = digitalRead (sensor_digital); // čtení digitálních dat ze senzoru
digitalWrite (bzučák, hodnota); // zapnutí nebo vypnutí bzučáku
}
Když všechno funguje, můžete psát programy, které implementují algoritmy větší složitosti. Například robot se „bojí“ přiblížit se k plameni nebo silné žárovce, aby se nezhoršil. A dělá to správné, protože držení senzorové desky ke zdrojům silného zahřívání na vzdálenost menší než 100 mm ji může poškodit.