Mierzenie światła, czyli fotorezystor

Dziś bardzo prosty schemat z fotorezystorem wykorzystujący dzielnik napięcia.

Schemat:

I prosty kod:

Typowy włącznik zmierzchowy.

int pomiarswiatla;

void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT); //wskazanie wyjścia
digitalWrite(8, LOW);//wyłączenie diody
}
void loop() {
pomiarswiatla = analogRead(A0); // wskazanie pinu czytającego dane analogowe
Serial.print("Pomiar światła = ");
Serial.println(pomiarswiatla);
if (pomiarswiatla < 350) {
digitalWrite(8, HIGH);//włączenie diody
} else {
digitalWrite(8, LOW);//wyłączenie diody
}
delay(100);
}

MicroPython

Schemat dla ESP8266 z wyświetlaczem tm1637.
Ustawia jaskrawość 7SEGx4 w zależności od oświetlenia. Potrzebna biblioteka tm1637.py
Rezystor o wartości 10k, VCC 3.3V

import time
import lib.tm1637 as tm1637, sys
from machine import Pin, ADC
tm = tm1637.TM1637(clk=Pin(5), dio=Pin(4))

def clearDisplay():
    tm.write(bytearray([0, 0, 0, 0]))

def mapRange(value, inMin, inMax, outMin, outMax):
    return outMin + (((value - inMin) / (inMax - inMin)) * (outMax - outMin))

ldr = ADC(0)                    #creating ldr object, pin A0

while True:
  ldr_value = ldr.read()   #reading analog pin
  bright = round(mapRange(ldr_value, 0, 1024, 0, 7))
  print(ldr_value, bright)                   #printing the ADC value
  tm.brightness(bright)
  tm.numbers(00, bright, False)
  time.sleep(5)

Dodaj komentarz