Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
f11:technik:arduino:programme:data-logger-dl2fp [2013/03/04 01:13]
dd7dka
f11:technik:arduino:programme:data-logger-dl2fp [2019/09/29 12:03] (aktuell)
Zeile 4: Zeile 4:
  
 Zusätzlich wird noch die PC Software gobetwino benötigt. [[http://mikmo.dk/gobetwinodownload.html]] Zusätzlich wird noch die PC Software gobetwino benötigt. [[http://mikmo.dk/gobetwinodownload.html]]
 +
 +===== Version 1 =====
  
 <code c Womo_Volt_messen.ino> <code c Womo_Volt_messen.ino>
Zeile 134: Zeile 136:
  
 // ENDE  // ENDE 
 +
 +</code>
 +
 +===== Version 2 =====
 +
 +<code c Data_Logger.ino>
 +/*
 + (c) by DL2FP 2014-07-25 10:45:00
 +    Datenlogger für 2 x 6 Messtellen 
 +      
 +    !!  Die Pin Belgung ist am Ende des Programmes zu finden. !!
 +*/
 +// -------------  beginning of the Program Code -----------
 +  #include <LiquidCrystal.h> // needed to display, include LCD Display 16x4
 +  #include <Morse.h>         // a little bit HAM RADIO  ....  ..
 +  #include <Wire.h>          // needed for the temrature Sensor
 +  #include <Encoder.h>       // needed for the KNOB
 +  #include <Time.h>          // nedded for the DATE and TIME STAMP
 +   #define TIME_HEADER  "T"  // Header tag for serial time sync message
 +   #define TIME_REQUEST  7   // ASCII bell character requests a time sync message 
 +   LiquidCrystal lcd(11, 10, 9, 8, 7, 6);
 +   Encoder knob(2, 3); // Pins des Drehgebers , pin 2 und 3
 +   const int Taster = 12; 
 +   int A=0;      
 +void setup()  {
 +  lcd.begin(16, 4); // set up the LCD's number of columns and rows: 
 +   lcd.setCursor(0,0);   lcd.print(" MOMMENT  BITTE ");
 +   lcd.setCursor(0,1);   lcd.print("                ");
 +   lcd.setCursor(16,0);  lcd.print("SETUP LAEUFT....");
 +   lcd.setCursor(16,1);  lcd.print("                ");
 +
 + Serial.begin(38400);
 +  pinMode(13, OUTPUT);
 +    pinMode (Taster, INPUT_PULLUP);
 +  // initial Time
 +      if (timeStatus() == timeNotSet) {  //  T1405944000 startzeit setzen 
 +      const long inittime=1405944000; unsigned long pctime=inittime; setTime(pctime);
 +      }
 +   int A=0;  
 +}
 +// ------------------------------ Ende   VOID - SETUP -------------------------------------
 +void loop(){ 
 +//     morseout(); // Eine Meßstelle wird per morsecode überwacht falls gewünscht.
 +     AusgabeSerial();
 +// Taster abfragen und die Menues durchschalten
 +  int  buttonState;             // the current reading from the input pin
 +    int  lastButtonState = LOW;   // the previous reading from the input pin
 +    long lastDebounceTime = 0;    // the last time the output pin was toggled
 +    long debounceDelay = 50;      // the debounce time; increase if the output flickers
 +    int reading = digitalRead (Taster);
 +  
 +   if (reading != lastButtonState) {
 +    lastDebounceTime = millis();      // reset the debouncing timer
 +  } 
 +    if ((millis() - lastDebounceTime) > debounceDelay) {
 +    // whatever the reading is at, it's been there for longer
 +    // than the debounce delay, so take it as the actual current state:
 +    buttonState = reading;
 +   }
 +   
 +   if (A > 7) {  // variable A steuert die swich case Menues.
 +     A=A-7; // Anzahl der Menues +1
 +   }
 +      if ((reading == LOW) && (reading == lastButtonState)) { // Taster gedrückt
 +       A=A+1;
 +       delay(1000);
 +     }
 +    else {
 +        delay(1000);
 +  }
 + lastButtonState = reading;
 +// swichcase schaltet in die Menues
 +    switch (A) {
 +    case 1:    
 +       menue1(); // ALLE Messwerte anzeigen
 +      delay(500);
 +      break;
 +    case 2:    // ???
 +      menue2();
 +           delay(500);
 +      break;
 +    case 3:    // ???
 +      menue3();
 +           delay(500);
 +      break;
 +          case 4:    // Jahr  und sekunde aendern
 +      menue4();
 +           delay(500);
 +      break;
 +    case 5: // Datum aendern
 +      menue5();
 +           delay(500);
 +       break; 
 +    case 6: // Zeit aendern
 +      menue6();
 +           delay(500);
 +      break;
 +     case 7: 
 +        hauptmenue();
 +        A=0;
 +             delay(500);
 +      break;   
 +    default:
 +    hauptmenue();
 +    delay(1000); // je nach delay werden Serial Daten geschrieben, delay=1000 entspr. ca. alle 2 Sekunden einmal.
 +  }
 +}
 +// ------------------------------ Ende   VOID - LOOP ---------------------------------------------------------
 +// Unterprogramme:
 +//------------------  void digitalClockDisplay(){   ------------------------------------------ 
 +void digitalClockSerial(){
 +  // digital clock display of the time
 +   printDigits(day());  Serial.print("."); printDigits(month());   Serial.print(".");  Serial.print(year()); Serial.print(";");
 +   printDigits(hour()); Serial.print(":"); printDigits(minute());  Serial.print(":"); printDigits(second()); Serial.print(";");
 +
 +   delay(10);
 +}
 +//------------------  void digitalClockLcdDatum(){   ------------------------------------------ 
 +void digitalClockLcdDatum(){
 +  // digital clock display of the time
 +   printlcdDigits(day());  lcd.print("."); printlcdDigits(month());   lcd.print(".");  lcd.print(year()); lcd.print("      ");
 + 
 +   delay(10);
 +}
 +//------------------  void digitalClockLcdZeit(){   ------------------------------------------ 
 +void digitalClockLcdZeit(){
 +  // digital clock display of the time
 +   printlcdDigits(hour()); lcd.print(":"); printlcdDigits(minute());  lcd.print(":"); printlcdDigits(second()); lcd.print("        ");
 +
 +   delay(10);
 +}
 +//------------------  void digitalClockLcdyyyyss(){   ------------------------------------------ 
 +void digitalClockLcdyyyyss(){
 +  // digital clock display of the time
 +   lcd.print(year()); lcd.print("    ");
 +   printlcdDigits(hour()); lcd.print(":"); printlcdDigits(minute());  lcd.print(":"); printlcdDigits(second()); lcd.print("        ");
 +
 +   delay(10);
 +}
 +//-------------  void digitalClockLcdHauptmenue(){   ------------------------------------------ 
 +void digitalClockLcdHauptmenue(){
 +  // digital clock display of the time
 +   printlcdDigits(day());  lcd.print("."); printlcdDigits(month());  lcd.print("   ");
 +   printlcdDigits(hour()); lcd.print(":"); printlcdDigits(minute());  lcd.print(":"); printlcdDigits(second()); lcd.print(" ");
 +
 +   delay(10);
 +}
 +//-------------  void digitalClockDisplay(){   ------------------------------------------ 
 +void digitalClockDisplay(){
 +  // digital clock display of the time
 +   printlcdDigits(day());  lcd.print("."); printlcdDigits(month()); lcd.print("."); lcd.print(year()-2000); lcd.print("");
 +   printlcdDigits(hour()); lcd.print(":"); printlcdDigits(minute());  lcd.print(":"); printlcdDigits(second()); lcd.print(" ");
 +
 +   delay(10);
 +}
 +//-------------   void printDigits(int digits){   ------------------------------------------------
 +void printDigits(int digits){
 +     // utility function for digital clock displaySerial: prints preceding colon and leading 0
 +     if(digits < 10)
 +      Serial.print('0');
 +      Serial.print(digits);
 +}
 +//-------------   void printlcdDigits(int digits){   -----------------------------------------
 +void printlcdDigits(int digits){
 +     // utility function for digital clock displayLCD: prints preceding colon and leading 0
 +     if(digits < 10)
 +      lcd.print('0');
 +      lcd.print(digits);
 +}
 +//-------------   void morseout() {   -----------------------
 +void morseout() {
 +// Status Ausgabe auf Lautsprecher or LED Pin 13 in morsecode
 +// Meßwert einlesen und für die Anzeige umrechnen
 +  int M06 = analogRead(A5); float AnzM06 = (M06*15/1024); char buffer6[5];
 + Morse morse(13, 20, 1);
 +    if (AnzM06 < 10.00) morse.sendmsg("E");  // EMPTY
 +    if (AnzM06 > 14.40) morse.sendmsg("O");  // overload
 +    if (AnzM06 > 13.80 && AnzM06 < 14.40) morse.sendmsg("L");  // loading
 +    if (AnzM06 > 12.00 && AnzM06 < 13.80) morse.sendmsg("R");  // READY
 +    if (AnzM06 > 10.00 && AnzM06 < 12.00) morse.sendmsg("N");  // need LOAD
 +}
 +//-------------   void AusgabeLcdMesswerte() {   -----------------------------
 +void AusgabeLcdMesswerte() {
 +  // Meßwert einlesen und für die Anzeige umrechnen
 +  int M01 = analogRead(A0); float AnzM01 = (M01/10.24); char buffer1[5];
 +  int M02 = analogRead(A1); float AnzM02 = (M02/51.20); char buffer2[5]; 
 +  int M03 = analogRead(A2); float AnzM03 = (M03/51.20); char buffer3[5];   
 +  int M04 = analogRead(A3); float AnzM04 = (M04/51.20); char buffer4[5]; 
 +  int M05= analogRead(A4);  float AnzM05 = (M05/10.24); char buffer5[5];  
 +  int M06= analogRead(A5);  float AnzM06 = ((M06*15)/1024); char buffer6[5];
 +  int M07= analogRead(A0); float AnzM07 = (M07/10.24); char buffer7[5];  
 +  int M08= analogRead(A1); float AnzM08 = (M08/10.24); char buffer8[5];  
 +  int M09= analogRead(A2); float AnzM09 = (M09/10.24); char buffer9[5];  
 +  int M10= analogRead(A3); float AnzM10 = (M10/10.24); char buffer10[5];   
 +  int M11= analogRead(4);  float AnzM11 = (M11/10.24); char buffer11[5];  
 +  int M12= analogRead(A5); float AnzM12 = ((M12*15)/1024); char buffer12[5];
 +//   Anzeige LCD - Display 1
 +  lcd.clear();
 +   lcd.begin(16, 4);
 +   lcd.setCursor(0,0); lcd.print("01 "); lcd.print(AnzM01); lcd.setCursor(9,0); lcd.print("02 "); lcd.print(AnzM02);
 +   lcd.setCursor(0,1); lcd.print("03 "); lcd.print(AnzM03); lcd.setCursor(9,1); lcd.print("04 "); lcd.print(AnzM04); 
 +   lcd.setCursor(16,0); lcd.print("05 "); lcd.print(AnzM05); lcd.setCursor(25,0); lcd.print("06 "); lcd.print(AnzM06);
 +   lcd.setCursor(16,1);digitalClockDisplay() ;
 +   delay(2000);
 + //   Anzeige LCD - Display 2
 +  lcd.clear();
 +   lcd.setCursor(0,0); lcd.print("07 "); lcd.print(AnzM07); lcd.setCursor(9,0); lcd.print("08 "); lcd.print(AnzM08);
 +   lcd.setCursor(0,1); lcd.print("09 "); lcd.print(AnzM09); lcd.setCursor(9,1); lcd.print("10 "); lcd.print(AnzM10); 
 +   lcd.setCursor(16,0); lcd.print("11 "); lcd.print(AnzM11); lcd.setCursor(25,0); lcd.print("12 "); lcd.print(AnzM12); 
 +   lcd.setCursor(16,1);digitalClockDisplay();
 + delay(1);
 +
 +//-------------   void AusgabeSerial() {  --------------------------
 +void AusgabeSerial() { 
 +  // Meßwert einlesen und für die Anzeige umrechnen
 +  int M01 = analogRead(A0); float AnzM01 = (M01/10.24); char buffer1[5];
 +  int M02 = analogRead(A1); float AnzM02 = (M02/51.20); char buffer2[5]; 
 +  int M03 = analogRead(A2); float AnzM03 = (M03/51.20); char buffer3[5];   
 +  int M04 = analogRead(A3); float AnzM04 = (M04/51.20); char buffer4[5]; 
 +  int M05= analogRead(A4);  float AnzM05 = (M05/10.24); char buffer5[5];  
 +  int M06= analogRead(A5);  float AnzM06 = ((M06*15)/1024); char buffer6[5];
 +  int M07= analogRead(A0); float AnzM07 = (M07/10.24); char buffer7[5];  
 +  int M08= analogRead(A1); float AnzM08 = (M08/10.24); char buffer8[5];  
 +  int M09= analogRead(A2); float AnzM09 = (M09/10.24); char buffer9[5];  
 +  int M10= analogRead(A3); float AnzM10 = (M10/10.24); char buffer10[5];   
 +  int M11= analogRead(4);  float AnzM11 = (M11/10.24); char buffer11[5];  
 +  int M12= analogRead(A5); float AnzM12 = ((M12*15)/1024); char buffer12[5];
 +
 +   digitalClockSerial();  // Date und Time STAMP
 +     Serial.print(itoa((M01), buffer1, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M02), buffer2, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M03), buffer3, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M04), buffer4, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M05), buffer5, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M06), buffer6, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M07), buffer7, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M08), buffer8, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M09), buffer9, 10)) ; Serial.print (";");
 +     Serial.print(itoa((M10), buffer10, 10)); Serial.print (";"); 
 +     Serial.print(itoa((M11), buffer11, 10)); Serial.print (";");
 +     Serial.print(itoa((M12), buffer12, 10)); Serial.print (";"); 
 +    Serial.println ();
 +     }
 +//-------------   void hauptmenue{   -----------------------------------------
 +void hauptmenue() {
 +     // Display-LCD-hauptmenue
 +        lcd.setCursor(0,0);  // beginning ROW 1
 +        lcd.print  ("(c)by DL2FP 2014");
 +        lcd.setCursor(0,1);  // beginning ROW 2
 +        lcd.print  ("  Haupt-Menue   ");
 +        lcd.setCursor(16,0); // beginning ROW 3
 +        lcd.println("Taster => Menues");
 +        lcd.setCursor(16,1); // beginning ROW 4
 +      digitalClockLcdHauptmenue();
 +}
 +//--------   void menue1 Alle Messwerte auf LCD ausgeben --------------------------
 +void menue1() {
 +     // Display-LCD-menue1
 +        AusgabeLcdMesswerte();
 +        delay(500);
 +}
 +//-------------   void menue2 ???   -----------------------------------------
 +void menue2() {
 +     // Display-LCD-menue2
 +        lcd.setCursor(0,0);
 +        lcd.print("    Menue 2     ");
 +        lcd.setCursor(0,1);
 +        lcd.println("Anzeige in Volt ");
 +        lcd.setCursor(16,0);
 +        lcd.print("Spannungs Werte ");
 +        lcd.setCursor(16,1);
 +        digitalClockDisplay();
 +   }
 +//-------------   void menue3 ???   -----------------------------------------
 +void menue3() {
 +     // Display-LCD-menue3
 +        lcd.setCursor(0,0);
 +        lcd.print("    Menue 3     ");
 +        lcd.setCursor(0,1);
 +        lcd.println(" Anzeige in AMP ");
 +        lcd.setCursor(16,0);
 +        lcd.print(" Strom Messwerte ");
 +        lcd.setCursor(16,1);
 +        digitalClockDisplay();
 +}
 +//-------------   void menue4 Jahr + Sekunde aendern   -----------------------------------------
 +void menue4() {
 +     // Display-LCD-menue4 Jahr + Sekunde aendern
 +        lcd.setCursor(0,0);
 +        lcd.print  ("Menue 4  yyyy+ss");
 +        lcd.setCursor(0,1);
 +        lcd.print  ("Schnell == Jahr ");
 +        lcd.setCursor(16,0);
 +        lcd.println("Langsam = Second");
 +        lcd.setCursor(16,1);
 +        digitalClockLcdyyyyss();
 +      
 +  long  newRight;
 +  long  positionRight;
 +       newRight = knob.read()+500;
 +     if (newRight != positionRight) {
 +          positionRight = newRight;
 +     }
 +     delay(500);
 + // Datum aendern
 +  //  T1405944000 init-Time = 21.07.2014 12:00:00, 1405944000 wird mit (now) gelesen.
 + unsigned long mytime;
 +   mytime=(now());
 +
 +   unsigned long change_sec; change_sec=1;
 +   unsigned long change_yy; change_yy=31104000;
 +   
 +   if (positionRight > 500&&positionRight<520) {
 +      mytime=mytime+change_sec; //Tag ändern plus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +   }
 +    if (positionRight < 500&&positionRight>480) {
 +      mytime=mytime-change_sec; //Tag ändern minus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +  }
 +     if (positionRight > 520) {
 +      mytime=mytime+change_yy; //Monat ändern plus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +   }
 +    if (positionRight < 480) {
 +      mytime=mytime-change_yy; //Monat ändern minus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +  }
 +     knob.write(0); // reset Knob            
 +}
 +//-------------   void menue5 Datum aendern   -----------------------------------------
 +void menue5() {
 +     // Display-LCD-menue5 Datum aendern
 +        lcd.setCursor(0,0);
 +        lcd.print("Menue 5    Datum");
 +        lcd.setCursor(0,1);
 +        lcd.print("Langsam == TAG  ");
 +        lcd.setCursor(16,0);
 +        lcd.println("Schnell == Monat");
 +        lcd.setCursor(16,1);
 +        digitalClockLcdDatum();
 +      
 +  long  newRight;
 +  long  positionRight;
 +       newRight = knob.read()+500;
 +     if (newRight != positionRight) {
 +          positionRight = newRight;
 +     }
 +     delay(500);
 + // Datum aendern
 +  //  T1405944000 init-Time = 21.07.2014 12:00:00, 1405944000 wird mit (now) gelesen.
 + unsigned long mytime;
 +   mytime=(now());
 +
 +   unsigned long change_dd; change_dd=86400;
 +   unsigned long change_mon; change_mon=2592000;
 +   
 +   if (positionRight > 500&&positionRight<520) {
 +      mytime=mytime+change_dd; //Tag ändern plus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +   }
 +    if (positionRight < 500&&positionRight>480) {
 +      mytime=mytime-change_dd; //Tag ändern minus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +  }
 +     if (positionRight > 520) {
 +      mytime=mytime+change_mon; //Monat ändern plus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +   }
 +    if (positionRight < 480) {
 +      mytime=mytime-change_mon; //Monat ändern minus !!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +  }
 +     knob.write(0); // reset Knob            
 +}
 +//-------------   void menue6 Zeit aendern---------------------------------
 +void menue6() {
 +     // Display-LCD-menue6 Zeit aendern
 +        lcd.setCursor(0,0);
 +        lcd.print  ("Menue 6     ZEIT");
 +        lcd.setCursor(0,1);
 +        lcd.print  ("Langsam = Minute");
 +        lcd.setCursor(16,0);
 +        lcd.println("SCHNELL = Stunde");
 +        lcd.setCursor(16,1);
 +        digitalClockLcdZeit();
 +      
 +  long  newRight;
 +  long  positionRight;
 +       newRight = knob.read()+500;
 +     if (newRight != positionRight) {
 +          positionRight = newRight;
 +     }
 +     delay(500);
 + // Zeit aendern
 +  //  T1405944000 init-Time = 21.07.2014 12:00:00, 1405944000 wird mit (now) gelesen.
 + unsigned long mytime;
 +   mytime=(now());
 +   unsigned long change_min; change_min=60;
 +   unsigned long change_hh; change_hh=3600;
 +   
 +   if (positionRight > 500&&positionRight<510) {   // langsam rechtsrum drehen
 +      mytime=mytime+change_min;                    // Minute ändern plus!!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +   }
 +    if (positionRight < 500&&positionRight>490) {   // langsam linksrum drehen
 +      mytime=mytime-change_min;                     // Minute ändern minus!!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +  }
 +     if (positionRight > 510) {    // schnell rechtsrum drehen
 +      mytime=mytime+change_hh;     // Stunde ändern plus!!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +   }
 +    if (positionRight < 490) {     // schnell linksrum drehen
 +      mytime=mytime-change_hh;     // Stunde ändern minus!!!
 +     setTime(mytime);
 +      knob.write(0); // reset Knob
 +  }
 +     knob.write(0); // reset Knob            
 +}
 +// ------------------------------ Ende   VOID - Unterprogramme -------------------------------------
 +//END
 +/*
 +----------------------------Benötigte Hardware-------------------------
 +1 x PC, Laptop o.ä. zum Daten speichern und zum programmieren des Arduino
 +1 x Arduino Leonardo
 +1x LCD-Display 16x4
 +1x Poti 1k Ohm für LCD-Display-Contrast
 +1x Lautsprecher
 +1x LED und R 1K Ohm
 +1x Drehimpulsgeber mit Taster
 +1x LDR und 2 Wiederstaende , Werte ????
 +1x Temeraturfühler, z.B. DS1208 sihe http://wiki.fox11.de Temperatur Logger
 +sowie Vorwiederstände an den Messtellen für Spannungs-Messung, z.B. 4x 10K Ohm um 20V+ zu messen.
 +sowie Shunt-Widerstände bei den Strom Messungen.
 +*/
 +// -------------------------  benötigte Software ----------------------
 +/*
 +Arduino V 1.0.5-r2
 +RS232 Datalogger, zu finden auf http://www.eltima.com
 +*/
 +//  ---  PIN Belegungen -----------------------------------------------
 +// vom Arduino Leonardo
 +/*
 +   Arduino Pins !!!
 +   ___________________
 +   mini USB   !!! EPC
 +   DC Buchse   (+5 bis +20V)
 +   ISP 6 POL
 +
 +   IOREF
 +   Reset   (Hardware - Reset)
 +   +3,3 V  (Power)
 +   +5 V    (Power) !!! Versorgungsspannung
 +   GND     (Power) !!! Versorgungsspannung  
 +   GND     (Power)
 +   +Vin    (Power) (+5 - +20V)
 +
 +   A0 analog in (MUB1), (MIB1) 
 +   A1 analog in (MUB2), (MIB2)  
 +   A2 analog in (MUS1), (MIS1) 
 +   A3 analog in (MUS2), (MIS2) 
 +   A4 analog in (MUNT), (MINT) 
 +   A5 analog in (Temp), (Light) 
 + 
 +   SCL   (CAN-BUS 1)
 +   SDA   (CAN-BUS 2)
 +   AREF  (Hardware-Interrupt)
 +   GND
 +   -13 digital PWM  Lautsprecher(morse) or LED (intern LED) 
 +    12 digital      Taster
 +   -11 digital PWM  !!! LCD-Display  4 RS selcting Registers 
 +   -10 digital PWM  !!! LCD-Display  6 DATA enable signal for write/read data
 +    -9 digital PWM  !!! LCD-Display 11 DATA 4
 +     8 digital      !!! LCD-Display 12 DATA 5
 + 
 +     7 digital       !!! LCD-Display 13 DATA 6
 +    -6 digital PWM   !!! LCD-Display 14 DATA 7
 +    -5 digital PWM   Reset
 +     4 digital       Relais Leitungsmultiplexer
 +    -3 digital PWM   Drehimpulsegeber 1 // Pins 2+3 wegen der Interruptfähigkeit
 +     2 digital       Drehimpulsegeber 2 // dadurch funktioniert der Drehgeber besser
 +    TX->1
 +    RX<-0
 +    */
 +// vom LCD Display
 +/*
 +LCD - Display pins:
 + initialize the LCD-Display library with the numbers of the interface pins
 +      4K7 Ohm nach GND, 1k2 Ohm nach +5V, Mitte an Pin3 anstelle des Poti!
 +      Contrast Pin 3 benötigt ca. 1V +
 +---------------  LCD 16x4  pins
 +       GND  || GND
 +       +5V  || +5V
 +       Poti || Mittelpin Poti // Contrast
 +       RS selcting Registers || pin 11 am Arduino
 +       GND L = write Mode || GND
 +       DATA enable signal for writze/read data || pin 10 am Arduino
 +      DATA 0
 +      DATA 1
 +      DATA 2
 +     10 DATA 3
 +     11 DATA 4 || pin 9 am Arduino
 +     12 DATA 5 || pin 8 am Arduino
 +     13 DATA 6 || pin 7 am Arduino
 +     14 DATA 7 || pin 6 am Arduino
 +     15 (Backlight +5V)
 +     16 (Backlight GND)
 +*/
 +// Belegung der Mess-Stellen
 +/*
 +-------- Messwerte für erstes Display----------
 +  M01 = U Womo Batterie
 +  M02 = U Auto Batterie
 +  M03 = U Slo1
 +  M04 = U Sol2
 +  M05 = U Ladegerät +14,4V
 +  M06 = U 230V
 +-------- Messwerte für zweites Display----------
 +  M07 = I Womo
 +  M08 = I Auto
 +  M09 = I Sol1
 +  M10 = I Sol2
 +  M11 = Temp
 +  M12 = Licht
 +*/
  
 </code> </code>
f11/technik/arduino/programme/data-logger-dl2fp.1362356007.txt.gz · Zuletzt geändert: 2019/09/29 12:01 (Externe Bearbeitung)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0