Beiträge getagged ‘avr’

Lichtmessung mit AVR-NET-IO, Fototransistor und PHP

13 Februar 2010

Nachdem ich zuvor schon geschrieben habe wie man einen LM35 Temperatursensor an das AVR-NET-IO anschließt, um diesen mit der Originalfirmware von Pollin auszulesen hier nun die Beschreibung, um einen Fototransistor anzuschließen. Diesen kann man z.B. zur Helligkeitsmessung verwenden.

Es sei angemerkt, dass der hier verwendete Fototransistor BPW 40 (BPW 96C, Conrad Electronic Bestellnummer 184055) mehr auf den Infrarotbereich anspricht als auf Wellenlängen, die das menschliche Auge sieht. Daher ist diese Schaltung eher als “Proof Of Concept” zu verstehen – andere Fototransistoren können entsprechend ebenfalls verwendet werden.

Die Schaltung ist sehr einfach gehalten – natürlich können auch andere Anschlüsse (ADC1-4, GND, 5V) verwendet werden als hier dargestellt:

AVR-NET-IO Anschluss eine Fototransistors

Die Schaltung ist nicht für die direkte Messung der Lichtintensität (z.B. in Lux, Lumen) ausgelegt, kann aber gut relative Lichtunterschiede erkennen. Der Wert eines ADC-Eingang kann sich zwischen 0 und 1024 bewegen, daher errechnet sich der prozentuale Wert wie folgt:

100-(100/(1024/ADC-Wert))

Hier der entsprechende Beispielcode für die Verwendung mit der PHP-Klasse:

$avr = new AvrNetIo('192.168.0.90');
if ($avr->connect()) {
    $light = 100-(100/(1024/$avr->getAdc(2)));
    echo "Licht: $light%";
    $avr->disconnect();
} else {
        die("Verbindungsfehler!");
}

Viel Spaß damit ;)

Temperaturmessung mit LM35 mit AVR-NET-IO und PHP

Temperaturmessung mit LM35 mit AVR-NET-IO und PHP

13 Februar 2010

Nachdem ich hier bereits meine PHP-Klasse zur Ansteuerung des Pollin AVR-NET-IO (manchmal auch als AVR-NetIo bezeichnet) vorgestellt habe, die ohne Änderung der Originalfirmware funktioniert hier nun Informationen zur Temperaturmessung mittels eines LM35 von National Semiconductor (LM 35 DZ), der an einem der 4 ADC-Eingänge angeschlossen wird. Diesen kann man z.B. bei Conrad Electronic unter der Bestellnummer 156600 für ca. 5 € bestellen.

AVR-NET-IO LM 35 DZ

Anschließend kann man dann wie folgt den Temperaturwert berechnen:

ADC-Wert * 0.0048828 * 100

Hier der entsprechende Beispielcode für die Verwendung mit der PHP-Klasse:

$avr = new AvrNetIo('192.168.0.90');
if ($avr->connect()) {
 $temp = 0.0048828 * $avr->getAdc(1) * 100;
 echo "Temperatur: $temp°C";
 $avr->disconnect();
} else {
 die("Verbindungsfehler!");
}

So können bis zu 3 weitere Temperatursensoren angeschlossen werden.

Auf Grund der “nur” 1024 möglichen Werte an einem ADC-Port liegt die Genauigkeit des Wertes bei ca. 0,5°C.