myAVR myEthernet |
Zustandsabfragen der Pins am myEthernet |
Im Einstiegsbeispiel wurden vorrangig Kommandos an den Webserver gesendet, welche nur die
Ausgabe von Signalen steuern. Da aber auch die Zustände und Konfigurationen der Pins interessant sind,
gibt es noch weitere Ersetzungen die mehr Details ausgeben. Für die Pins 0 bis 23 existieren noch die Ersetzungen °v*° °c*° °C*°. Dabei kann der * als Parameter für alle Pins angegeben sein, es erfolgt dann eine Rückgabe von 24 Werten die mit einem Semikolon getrennt sind. Anstatt dem * ist es natürlich möglich, eine Zahl von 0 bis 23, entsprechend eines einzelnen Pins, zu benutzen. Beispiel einer Rückgabe zum Parameter °v*° (Pin0 bis Pin23): 4;3;3;2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;1;1;0;1 Beispiel einer Rückgabe zum Parameter °c20° und °c21°: 0x1 0x1 entspricht der aktuellen Konfiguration an Pin20 Pin21, hier "digital out" Beispiel einer Rückgabe zum Parameter °C0°: 0x1C7 entspricht allen möglichen Konfigurationen an Pin0, hier: "digital out", "digital in", "digital in mit Pullup", "analog input" sowie einige pinübergreifende Einstellungen Rückgaben der Parameter c und C erfolgen hier hexadezimal und können dabei eine Kombination von Bitwerten darstellen. Liste der Bitwerte und ihre Bedeutung:
0x2 = "digital in" optional mit 0x100 = "Pullup" 0x4 = "analog input" 0x8 = "uart" 0x10 = "twi" 0x20 = "spi" 0x40 = "ByteOut" 0x80 = "ByteIn" optional mit 0x100 = "Pullup" Für diesen Anwendungsfall wird ein Aufbau des myEthernet mit dem myAVR Board MK2 wie im Menü der "Bsp-Anwendungen" der myEthernet-Webseite angenommen. Dort ist ein Potentiometer am Pin12/13 angeschlossen der manuell geregelt werden kann. Die Signalumwandlung geschieht mit einer Genauigkeit von 10bit. Der Eingangswert von 0V bis 5V wird dann auf einen digitalen Wert von 0 bis 1023 umgerechnet. Das Grundprinzip der Datenaufnahme besteht im wiederholten Abfragen des myEthernet mit einer Webseite, welche eine Liste von Ersetzungen enthält. Die Webseite ("pin1213v.htm") besteht dabei nur aus folgenden Einträgen:
Die Ausgabe zur vollständigen Anwendung könnte so aussehen: ![]() Der HTML- und Javascriptcode: ![]() |