Skip to main content

Analoge IR-sensor

Een analoge IR-sensor geeft niet zomaar een 0 of een 1, maar een getal tussen 0 en 65535. Hoe hoger het getal, hoe minder licht er terugkomt. Daardoor kun je zelf bepalen waar de grens tussen zwart en wit ligt.

Materiaal​

  • Nano op het shieldArduino Nano RP2040 Connect op het Leaphy Murphy ShieldHet Leaphy Murphy Shield, de groene printplaat waar de Nano in past
  • Analoge IR-sensorMet vier pinnenEen blauwe IR-sensor met vier pinnen en een blauw potmetertje
Controlevraag

Op welke pinnen sluit je een analoge IR-sensor aan?

Antwoord

Op een analoge pin: A0, A1, A2, A3, A6 of A7. Niet op A4 en A5 — die zijn nodig voor I2C (SDA en SCL).

Eén sensor uitlezen​

Aansluiten​

Aansluitschema: de analoge IR-sensor op het rijtje van A0 van het shield, met AO aan A0, VCC aan 3V3 en GND aan GND

Op het shield heeft elke pin van de Nano een eigen rijtje van drie pinnen. De binnenste, naast de Nano, is de pin zelf (bijvoorbeeld D7). De middelste is 3V3 en de buitenste is GND. Sluit een onderdeel aan op het rijtje van zijn pin: dan zitten signaal, 3V3 en GND naast elkaar, en past er een stekker van drie pinnen op. In het schema zegt de legenda welke draad op welke pin komt.

Sluit de IR-sensor aan op het rijtje van A0. Op het shield heet die pin A0/D14, onder de Nano.

  • AO van de sensor aan de pin A0 (binnenste rij). AO is met de letter O: analoog uit.
  • VCC aan een 3V3-pin (middelste rij)
  • GND aan een GND-pin (buitenste rij)

De pin DO van de sensor laat je leeg; die is voor de digitale IR-sensor.

Code​

from leaphymicropython.sensors.linesensor import AnalogIR
from time import sleep

a0 = AnalogIR("A0", 2500)

while True:
a0_ir = a0.get_analog_value()
a0_color = a0.black_or_white()

print(a0_ir, a0_color)
sleep(0.01)

Uitleg​

a0 = AnalogIR("A0", 2500)
  • "A0" is de pin waar de sensor op zit.
  • 2500 is de drempelwaarde. Alles boven 2500 noemt de sensor "black", daaronder "white".
a0.get_analog_value()

Geeft het ruwe getal terug (tussen 0 en 65535).

a0.black_or_white()

Geeft "black" of "white" op basis van de drempelwaarde.

Opdracht: drempel kalibreren

Houd de sensor boven wit papier en boven zwart papier. Kies een drempelwaarde die precies tussen die twee in ligt en pas 2500 aan.

Tip

Schrijf de twee getallen op en neem het midden. Bijvoorbeeld: wit = 800, zwart = 5000 → drempel = 2900.

Twee sensoren uitlezen​

Met twee IR-sensoren kun je een lijn volgen: één links en één rechts van de lijn.

Aansluiten​

Aansluitschema: links een analoge IR-sensor op het rijtje van A0, rechts een op het rijtje van A1, elk met AO binnen, VCC in het midden en GND buiten

  • Sensor 1 (links) op het rijtje van A0
  • Sensor 2 (rechts) op het rijtje van A1

Elke sensor zit net zo als hierboven: AO binnen, VCC in het midden, GND buiten. A0 en A1 zitten op het shield naast elkaar. Tussen de twee rijtjes lopen daarom twee draden vlak naast elkaar: de blauwe van de linkersensor naar A0 en de rode van de rechtersensor naar 3V3.

Code​

from leaphymicropython.sensors.linesensor import AnalogIR
from time import sleep

a0 = AnalogIR("A0", 2500)
a1 = AnalogIR("A1", 2500)

while True:
a0_ir = a0.get_analog_value()
a0_color = a0.black_or_white()

a1_ir = a1.get_analog_value()
a1_color = a1.black_or_white()

print(a0_ir, a0_color, "|", a1_ir, a1_color)
sleep(0.01)

Uitleg​

Voor elke sensor maak je een eigen AnalogIR-object met de juiste pin. De methodes (get_analog_value() en black_or_white()) werken precies hetzelfde.

Opdracht: welke sensor is links?

Houd alleen de linkersensor boven een zwarte lijn. Welke waarde wordt zwart? a0 of a1? Noteer dit, dan weet je later welke sensor links zit.

Tip

Print eerst de waardes en beweeg dan rustig één sensor over een zwarte streep. De sensor waarvan de waarde stijgt is de sensor die je beweegt.

Hoeveel sensoren kan ik aansluiten?​

In totaal zijn er zes analoge pinnen bruikbaar voor IR-sensoren. Twee is gangbaar voor lijnvolgen, vier is gevorderd.

Wel gebruiken​

A0, A1, A2, A3, A6, A7

Niet gebruiken​

A4 en A5

A4 en A5 zijn bezet

Pinnen A4 en A5 worden gebruikt voor I2C communicatie (SDA en SCL). Als je een multiplexer, TOF-sensor of OLED-scherm gebruikt, zijn deze pinnen al bezet. Sluit hier geen IR-sensoren op aan, anders werken je I2C-apparaten niet meer.

Controlevraag

Je gebruikt een OLED-scherm en wilt drie IR-sensoren toevoegen. Welke pinnen kies je?

Antwoord

Kies drie uit A0, A1, A2, A3, A6, A7. Bijvoorbeeld A0, A1 en A2. Niet A4 of A5, want die heeft het OLED-scherm nodig.