Um nun ein Hindernis detektieren zu können, muss man nur die IR-Diode mit 36kHz versorgen. Das ist die Frequenz, die der IR-Empfänger SHF5110-36 braucht. Der Ausgang des IR-Empfängers wird dann auf LOW gezogen, wenn ein reflektiertes Signal erkannt wird. Das 36kHz-Signal ist im Asuro schon vorbereitet und steht am Ausgang PB3 an. Die IR-Diode ist über einen Vorwiderstand an PB3 und an PD1 angeschlossen. Man braucht also nur den Ausgang PD1 am Atmega auf LOW setzen und schon sendet die IR-Diode. Folgende 2 Zeilen im C-Programm sorgen dafür:
DDRD |= (1 << DDD1); // Port D1 als Ausgang
PORTD &= ~(1 << PD1); // PD1 auf LOW
Die Auswertung des IR-Empfängers erfolgt über den Eingang PD0 des Atmega mit z.B. folgendem Code:
if (!(PIND & (1 << PD0))) // prüft Eingang PD0 auf LOW
Lesezeichen