Show Posts
Pages: 1 [2] 3 4 ... 9
16  International / Deutsch / Re: Sketch funktioniert mit IDE 1.00 , aber mit IDE 1.55 und 1.05 nicht on: February 20, 2014, 01:36:00 am
Hallo Uwe

mensch das gieng ja schnell Danke.
Ich habs gerade nochmals kontrolliert alle Libarys sind vorhanden diese sind auch rot hinter #define dargestellt.
Die erste Fehlermeldung bezieht sich allerdings auf Zeie 14 was die Lib DallasTemperature einbindet.
Auch wird in der Fehlermeldung der Pfad der DallasTemperature.h angegeben ist evetuell der Fehler in der DallasTemperature.h ?

Grüße und nochmals Danke Rudi
17  International / Deutsch / Sketch funktioniert mit IDE 1.00 , aber mit IDE 1.55 und 1.05 nicht (Erledigt) on: February 19, 2014, 05:41:45 pm
Hallo zusammen

ich habe einen Sketch mit hilfe der IDE 1.0 geschrieben un dieser funktioniert auch prächtig.
Jetzt möchte ich aber den Sketch mittels eder neueren IDE ( 1.05 oder 1.55 ) weiterentwickeln.Da ich die Ausgabe mehrerer LED mittels PCF 8574 nicht mit der IDE1.0 programieren kann.
Doch leider funktioniert die Portierung mit den neuen IDE nicht .
Es werden folgende Fehlermeldungen ausgespuckt:

Arduino: 1.5.5 (Linux), Board: "Arduino Uno"

In file included from _23_Fehlerbereinigung_Anzeige_Delta_Temperatur_Kollektor_Speich.ino:14:
/home/rudi/Desktop/arduino-1.5.5/libraries/DallasTemperature/DallasTemperature.h:64: error: expected `)' before ‘*’ token
/home/rudi/Desktop/arduino-1.5.5/libraries/DallasTemperature/DallasTemperature.h:222: error: ISO C++ forbids declaration of ‘OneWire’ with no type
/home/rudi/Desktop/arduino-1.5.5/libraries/DallasTemperature/DallasTemperature.h:222: error: expected ‘;’ before ‘*’ token
_23_Fehlerbereinigung_Anzeige_Delta_Temperatur_Kollektor_Speich:22: error: ‘OneWire’ does not name a type
_23_Fehlerbereinigung_Anzeige_Delta_Temperatur_Kollektor_Speich:23: error: ‘oneWire’ was not declared in this scope

 


Den Sketch habe ich unten angehängt.

Könnte vieleicht jemand mir bei der Beseitugung der Fehler helfen ?

Vielen Dank Rudi
18  International / Deutsch / Re: PCF8574 4Pns als Eingang 4 Pins als Ausgang on: February 15, 2014, 12:19:36 pm
Hallo Summary

danke für Deine Antwort.
Ich habe die zwei Sachen (Schalter-Platinenteil und LED-Platinenteil) jetzt getrennt aufgebaut und mit je einem PCF8574 versehen.
Jetzt funktioniert es .
Die Anweisung  "  Wire.write(I2C_ADDR | 0x01);    // Alle Ports als Eingang " habe ich tatsächlich auch auskomentieren können.

Das mit der 7-Bit Adresse habe ich auch gelesen. Aber mit der Adresseingabe 0X23 funktionierts keine Ahnung wiso.
Meine Schalterplatine hat jetzt 0X23 und die LEDplatine 0X25.

Jetzt stehe ich noch vor dem Problem dass ich die Schalterstellungen auslesen muß und das dann an der LED Platine anzeigen will.
Kann ich da die Variable die Wire.read zurückgibt irgendwie auslesen und dann ein einzelnes Bit weiterverarbeiten.
Ähnlich dann auch bei der Übertragung zur Led-Platine -> lässt sich da auch nur ein einzelnes Bit ändern und dann alles übertragen.

Grüße Rudi
19  International / Deutsch / PCF8574 4Pns als Eingang 4 Pins als Ausgang on: February 13, 2014, 03:07:00 pm
Hallo Zusammen

Gibt es eine Möglichkeit gleichzeitig
die Pins P0 bis P3 als Eingänge und
die Pins P4 bis P7 als Ausgänge zu schalten.

Lassen sich die Zustände der einzelnen Ports auch unabhängig voneinander schalten beziehungsweise abfragen?

In Netz habe ich nur Beispiele für jeweils Ein- oder Ausganskonfiguration gefunden also kein Gemischtbetrieb.

erst Versuche habe ich mit dem Sketchen gemacht:

PCF8574 Pins als Eingänge geschaltet:
Code:
/****************************************************************
*
* PCF8574 I²C-Bus-Expander als Eingabeport
*
****************************************************************/

#include <Wire.h>

#define I2C_ADDR    0x23 // I2C-Addresse


void setup() {
  Serial.begin(9600);
 
  // Für Leonardo
  while (!Serial)
    ;
 
  Wire.begin(I2C_ADDR);
 
  Serial.println("Testprogramm PCF8574 I2C-Bus-Expander");
  Serial.println("-------------------------------------");
  Serial.println();
}


void loop() {
  Wire.beginTransmission(I2C_ADDR);
  Wire.write(I2C_ADDR | 0x01);    // Alle Ports als Eingang
  Wire.requestFrom(I2C_ADDR, 1);  // Ein Byte (= 8 Bits) anfordern
  while(Wire.available() == 0)    // Warten, bis Daten verfügbar
    ;
  Serial.print("Eingelesen: ");
  Serial.println(Wire.read());
  Wire.endTransmission(true);
 
  delay(50);
}

PCF8574 Pins als Ausgänge geschaltet:
Code:



 
/****************************************************************
*
* PCF8574 I²C-Bus-Expander als Ausgabeport
*
****************************************************************/

#include <Wire.h>

#define I2C_ADDR    0x40 >> 1 // I2C-Addresse


void setup() {
  Serial.begin(9600);
 
  // Für Leonardo
  while (!Serial)
    ;
 
  Wire.begin(I2C_ADDR);
 
  Serial.println("Testprogramm PCF8574 I2C-Bus-Expander");
  Serial.println("-------------------------------------");
  Serial.println();
}


void loop() {
  Serial.println("Pins HIGH schalten");
  Wire.beginTransmission(I2C_ADDR);
  Wire.write(I2C_ADDR & 0xFE);   // Alle Ports als Ausgang
  Wire.write(0xFF);              // Alle Pins HIGH
  Wire.endTransmission(true);
 
  delay(3000);
 
  Serial.println("Pins LOW schalten");
  Wire.beginTransmission(I2C_ADDR);
  Wire.write(I2C_ADDR & 0xFE);   // Alle Ports als Ausgang
  Wire.write(0x00);              // Alle Pins LOW
  Wire.endTransmission(true);
 
  delay(3000);
}
 


Vielen Dank schonmal im Vorraus Rudi
20  International / Deutsch / Re: Fehler: invalid conversion from const char* to unit8_t on: February 02, 2014, 05:07:53 pm
Hi

Vielen Dank jetzt hab ich`s gepackt.
So habe ichs gelöst:
Code:
lcd.setCursor(0, 3);
     lcd.write(83); //Zeichen S
     lcd.write(101);//Zeichen e
     lcd.write(110);//Zeichen n
     lcd.write(115);//Zeichen s
     lcd.write(111);//Zeichen o
     lcd.write(114);//Zeichen r
     lcd.write(45); //Zeichen -
     lcd.write(70); //Zeichen F
     lcd.write(101);//Zeichen e
     lcd.write(104);//Zeichen h
     lcd.write(108);//Zeichen l
     lcd.write(101);//Zeichen e
     lcd.write(114);//Zeichen r
     lcd.write(45); //Zeichen -
     lcd.write(83); //Zeichen S
     lcd.write(112);//Zeichen p
     lcd.write(49); //Zeichen 1
     lcd.write(32); //Leerzeichen
     lcd.write(32); //Leerzeichen
     lcd.write(32); //Leerzeichen

das ist sehr aufwendig aber zuletzt funktionierts ja.

Ein Problem war dass ich den Wert der in der Klammer eingegeben wird nicht dem Zeichen zuordnen konnte wie zum Beispiel:
Das Grad Zeichen ist lcd.write (223).
Duch Probieren hab ich jetzt die ganzen Werte herausbekommen.

Vielen Dank nochmals für die Hilfe

PS die Tastatur-Kombination STRG-C für Coppy kenne ich und das hat leider auch nicht funktioniert. Eventuell ligt es daran dass ich Ubuntu verwende.
21  International / Deutsch / Re: Fehler: invalid conversion from const char* to unit8_t on: February 02, 2014, 11:11:23 am
Hallo

Danke für die Hilfen
Den Sketch habe ich mal angehängt gibt es eine Möglichkeit die Fehlermeldungen irgendwie zu Kopieren ( ähnlich Drag and Drop)?
Damit ich diese nicht immer abtippen muss?

22  International / Deutsch / Fehler: invalid conversion from const char* to unit8_t on: February 02, 2014, 05:20:44 am
Hallo Zusammen

vor einiger Zeit habe ich einen Sketch geschrieben der meine thermische Solaranlage steuert.
Soweit funktioniert dieser auch gut . Doch da mir nun die Pins ausgehen möchte ich die LVD-Ausgabe auf I²C umstellen.
Den Sketch habe ich auch schon angepasst ( siehe unten ).
Doch ieider spuckt mir die IDE noch einige Fehler aus.
Nämlich:invalid conversion from const char* to unit8_t
                  initialysing argument 1 of virtual size_t LiquidCrystal_I2C :: write(unit8_t)
Das gilt für die unterstrichenen Zeilen (
Code:

/*
  Differenztemperatursteuerung Sonnenkolektor mit 1XPT100 im Kollektor
                                                  1XDS18B20 im Speicher 1
                                                  1XDS18B20 im Speicher 2
*/

// Laden der Libary:
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <Wire.h>
#include <DallasTemperature.h>

LiquidCrystal_I2C lcd(0x27,20,4);
//                                      
#define ONE_WIRE_BUS A3

///char buffer[20] = "";                                     // Speicherbereich für Datenkonvertierung

OneWire oneWire(ONE_WIRE_BUS);                            // Library für Datenleitung des Tempatursensors Dallas DS18xx
DallasTemperature sensors(&oneWire);


//die Variablen deklarieren

float tempK;
float tempS1;
float tempS2;
int tempPin1 = 1;                 //Hier ist der analoge Eingang der Temperaturproportionalen Spannung (0-5V)
int SpeichertempPin1 = A3;        //Temperaturdaten der Speichersensoren werden an Analogpin3 angeschlossen

int Pumpe1 = 13;
int Pumpe2 = 12;

int DifferenztemperaturS1 = 0;      //Hier nichts eingeben
int DifferenztemperaturS2 = 0;      //Hier nichts eingeben
int Schalttemperatur = 14;          //Hier die Schalttemperatur der Differenz Kolektor -> Speicher, bei der die Pumpe gestartet wird, eingeben
int SpeicherTempMax = 85;           //Hier die Maxtemperatur des Speichers, bei der die Pumpe ausgeschaltet wird und eine Fehlermeldung ausgegebeb wird ( muss quittiert werden ) eingeben
int KolektorTempMax = 130;          //Hier die Maxtemperatur des Kolektors, bei der die Pumpe ausgeschaltet wird  und eine Fehlermeldung ausgegebeb wird ( muss quittiert werden ) eingeben
int KolektorTempMaxHysterese = 2;   //Hier die Hysterese der Ausschaltemperatur des Kolektors, bei der die Pumpe wieder eingeschaltet wird, eingeben
int SpeicherTempUnplausibel = 8 ;   //Unter 8°C ist Meßwert im Speicher unplausibel
int TempSpeicher35 = 35;            //Dient für die Stufenbestimmung
int TempSpeicher50 = 50;            //Dient für die Stufenbestimmung
int TempSpeicher75 = 75;            //Dient für die Stufenbestimmung
int TempSpeicher85 = 85;            //Dient für die Stufenbestimmung

int Stufe;                          //Für die Stufenweiterverarbeitung
int StufeSpeicher1;                 //Für die Stufenweiterverarbeitung
int SicherheitSpeicher1iO;          //Für die Stufenweiterverarbeitung
int StufeSpeicher2;                 //Für die Stufenweiterverarbeitung
int SicherheitSpeicher2iO;          //Für die Stufenweiterverarbeitung

int FehlereldungSpeicher1MaxVariable = 0; //zum speichern des Fehlers auch wenn die Fehlerursache wieder verschwindet
int FehlereldungSpeicher2MaxVariable = 0; //zum speichern des Fehlers auch wenn die Fehlerursache wieder verschwindet
int FehlereldungSpeicher1UnplausibelVariable = 0; //zum speichern des Fehlers auch wenn die Fehlerursache wieder verschwindet
int FehlereldungSpeicher2UnplausibelVariable = 0; //zum speichern des Fehlers auch wenn die Fehlerursache wieder verschwindet

#define ONE_WIRE_BUS A3  // Datendraht an Pin A3

//Achtung die jeweilige Adresse des nicht angeschlossenen Sensors deaktivieren  

//DeviceAddress SensorS1 = { 0x28, 0xB2, 0x4B, 0xA1, 0x03, 0x00, 0x00, 0x2C }; //Sensor 1 Experimentier Anschluss
DeviceAddress SensorS1 = { 0x28, 0x27, 0xB0, 0xC0, 0x03, 0x00, 0x00, 0xBF }; //Sensor 1 im Speicher 1

//DeviceAddress SensorS2 = { 0x28, 0xF2, 0x75, 0xA1, 0x03, 0x00, 0x00, 0x7F }; //Sensor 2 Experimentier Anschluss
DeviceAddress SensorS2 = { 0x28, 0x9B, 0xFC, 0x8B, 0x03, 0x00, 0x00, 0x79 }; //Sensor 2 im Speicher 2

void setup(){
 lcd.init();
  byte addr[8];  
  Serial.begin(9600);
  sensors.begin();
  sensors.setResolution(SensorS1, 10); //Die Auflösung des DS18B20-Sensors heraufsetzen
  sensors.setResolution(SensorS2, 10); //Die Auflösung des DS18B20-Sensors heraufsetzen
  pinMode (Pumpe1, OUTPUT);
  pinMode (Pumpe2, OUTPUT);
}

void loop(){  
  //Start Abfrage DS18B20
  sensors.requestTemperatures();  
  //Temperaturen DS18B20 in Variable ablegen
  float tempS1 = sensors.getTempC(SensorS1); //zwischenspeichern in Variable tempS1
  float tempS2 = sensors.getTempC(SensorS2); //zwischenspeichern in Variable tempS2   
  sensors.requestTemperatures();  
   lcd.begin(20, 4);//LCD hat 20 Zeichen und 4 Spalten  
}
Den Sketch musste ich leider einkürtzen.

Hat das eventuell mit der metode die Texte ins LCD zu schreiben zu tun ?
Muss ich da eventuell eine andere Technik anwenden?

Vielen Dank für Eure Hilfe Rudi
23  International / Deutsch / Re: Stino -- die wirklich bessere IDE on: January 02, 2014, 03:00:53 pm
Hallo Zusammen und ein glücliches neues Jahr

Das hört sich ja gut an. Kann mir vieleicht jemand beschreiben wie ich Stino unter Ubuntu 12.04 LTS intallieren kann?

Grüe Rudi
24  International / Deutsch / Re: Nicht alle Libarys werden in der IDE angezeigt on: November 25, 2013, 04:58:29 pm
Hallo
vielen Dank für die Antworten .
So wie es aussieht lässt sich das Problem nicht beheben aber jetzt bin ich einwenig schlauer.

Nochmals Danke Rudi
25  International / Deutsch / Nicht alle Libarys werden in der IDE angezeigt on: November 24, 2013, 03:53:00 pm
Hallo Zusammen

ich benutze die IDE 1.0 unter Linux 12.04 LTS

und habe ein kleines Problem:

Es werden in der IDE unter  import Libary nicht alle Libarys die ich ins Verzeichnis kopiert habe angezeigt.


- Wenn das Fenster aufklappt dann reicht die Fläche von ganz Oben bis ganz Unten auf dem Bildschirm.
- Es sieht so aus als ob die Biblioteken nicht zwei-Spaltig angezeigt werden können.
- Seltsamerweise werden aber nicht die letzten oder Ersten Bibliotheken abgeschnitten.
- Unter den angezeigten Libarys sind auch welche die ich selber reinkopiert habe.
- Wenn ich im Porogrammfenster die Lib von hand eintrage ( #include ) dann wird die Lib auch erkannt ( rote Farbe )
   und die Kompeilierung funktioniert dann auch.
- Unter Exampels werden auch nicht alle Libs angezeigt aber immerhin mehr als unter Import Libarys.

Vieleicht kann mir ja jemand helfen Grüße Rudi
26  International / Deutsch / Re: Lipo überwachung on: April 01, 2013, 04:00:58 pm
Hi Alex

Das Problem ist doch das dass bei Allen, außer der Ersten Zelle, die jeweiligen Spannungen nicht auf Masse bezogen sind .
Der Ardu die Spannungsmessung aber gegen Masse macht.

Wenn Du die einzelnen Zellen mittels eines Operationsverstärker misst und den Ausgang dann mit dem Eingängen des Arduinos misst.
Der OPV misst die Differenzspannung zwischen seinen zwei Eingängen und gibt diese Spannung ( wenn seine Verstärkung auf 1 eingestellt ist ) am Ausgang gegen Masse aus.
Es währe auch möglich die Spannung der ersten Zelle gegen Masse messen -> Zellenspannung Zelle 1

                                       die Spannung der ersten und der zweiten Zelle gegen Masse messen und die
                                                              Spannung   der ersten Zelle abziehen-> Zellenspannung Zelle 2

u.s.w.

Aber Achtung die Spannung am Eingang darf 5V nicht überschreiten also mit Spannungsteilern arbeiten.
27  International / Deutsch / Re: Arduino Oszilloscope bauen on: March 24, 2013, 05:22:25 pm
Hi zusammen

also übertragen lässt er sich nur hab ich noch keine Anzeige muss mal die Verdrahtung überprüfen.
Da gibts auch noch zwei Ungereimtheiten zwischen Plan und meinem Display.
Aber jetzt ist Feierabend denn morgen gehts wieder zur Arbeit
28  International / Deutsch / Re: Arduino Oszilloscope bauen on: March 24, 2013, 04:02:44 pm
Hi Uwe

danke für die schnelle Antwort.
Ich dachte nur dass der Sketch für nen UNO zu groß währe.
Ich lese aus deiner Antwort dass es geht dann werde ich das mal probieren.

Grüße Rudi
29  International / Deutsch / Arduino Oszilloscope bauen on: March 24, 2013, 02:07:57 pm
Hallo Zusammen

Ich möchte mir folgendes Oszi bauen: http://n.mtng.org/ele/arduino/oscillo.html

Kann ich dieses Oszi mit einem Uno realisieren wohl eher nicht hier nochmals der Sketch:

Code:
/*
 * Arduino Oscilloscope using a graphic LCD
 * The max sampling rates are 4.3ksps with 2 channels and 8.6ksps with a channel.
 * Copyright (c) 2009, Noriaki Mitsunaga
 */

#include <ks0108.h>
#include <Arial14.h>  // font definitions

#define txtLINE0   0
#define txtLINE1   16
#define txtLINE2   30
#define txtLINE3   46

const int LCD_WIDTH = 128;
const int LCD_HEIGHT = 64;
const int SAMPLES = 100;
const int ad_sw = 3;                    // Analog 3 pin for switches
const int ad_ch0 = 4;                   // Analog 4 pin for channel 0
const int ad_ch1 = 5;                   // Analog 5 pin for channel 1
const unsigned long VREF[] = {49, 98, 244, 488, 976}; // reference voltage 5.0V ->  50 :   1V/div range (100mV/dot)
                                        //                        -> 100 : 0.5V/div
                                        //                        -> 250 : 0.2V/div
                                        //                        -> 500 : 100mV/div
                                        //                       -> 1000 :  50mV/div
const int MILLIVOL_per_dot[] = {100, 50, 20, 10, 5}; // mV/dot
const int MODE_ON = 0;
const int MODE_INV = 1;
const int MODE_OFF = 2;
const char *Modes[] = {"ON", "INV", "OFF"};
const int TRIG_AUTO = 0;
const int TRIG_NORM = 1;
const int TRIG_SCAN = 2;
const int TRIG_ONE  = 3;
const char *TRIG_Modes[] = {"Auto", "Norm", "Scan", "One"};
const int TRIG_E_UP = 0;
const int TRIG_E_DN = 1;
#define RATE_MIN 0
#define RATE_MAX 13
const char *Rates[] = {"F1-1", "F1-2 ", "F2  ", "5ms", "10ms", "20ms", "50ms", "0.1s", "0.2s", "0.5s", "1s", "2s", "5s", "10s"};
#define RANGE_MIN 0
#define RANGE_MAX 4
const char *Ranges[] = {" 1V ", "0.5V", "0.2V", "0.1V", "50mV"};
byte range0 = RANGE_MIN;
byte range1 = RANGE_MIN;
byte ch0_mode = 0, ch1_mode = 0, rate = 5;
byte trig_mode = TRIG_AUTO, trig_lv = 30, trig_edge = TRIG_E_UP, trig_ch = 0;
byte Start = 1, menu = 0;
short ch0_off = 0, ch1_off = 0;
unsigned long startMillis;
byte data[4][SAMPLES];                   // keep twice of the number of channels to make it a double buffer
byte sample=0;                           // index for double buffer

void setup(){
  GLCD.Init(NON_INVERTED);   // initialise the library, non inverted writes pixels onto a clear screen
  GLCD.SelectFont(Arial_14); // you can also make your own fonts, see playground for details  
 
  Serial.begin(9600);
  GLCD.ClearScreen();
  DrawGrid();
  DrawText();
}

void CheckSW() {
  static unsigned short oain[2];
  static unsigned long Millis = 0, oMillis = 0;
  unsigned long ms;
  unsigned short ain = analogRead(ad_sw);
  
  ms = millis();
  if ((ms - Millis)<5)
    return;
  Millis = ms;
  
  if (!(abs(oain[0] - oain[1])>10 && abs(oain[1] - ain)<2)) {
    oain[0] = oain[1];
    oain[1] = ain;
    return;
  }
  oain[0] = oain[1];
  oain[1] = ain;
  
  if (ain > 950 || (Millis - oMillis)<200)
    return;
  oMillis = Millis;

  // Serial.println(ain);
  
  int sw;
  for (sw = 0; sw < 10; sw ++) {
    const int sw_lv[] = {889, 800, 700, 611, 514, 419, 338, 231, 132, 70};
    if (ain > sw_lv[sw])
      break;
  }
  // Serial.println(sw);
  
  switch (menu) {
  case 0:
  default:
    menu0_sw(sw);
    break;
  case 1:
    menu1_sw(sw);
    break;
  case 2:
    menu2_sw(sw);
    break;
  }
  
  DrawText();
}

void menu0_sw(int sw) {  
  switch (sw) {
   case 0:
    // START/HOLD
    if (Start)
       Start = 0;
     else
       Start = 1;
    break;
   case 1:
    // CH0 RANGE -
    if (range0 < RANGE_MAX)
      range0 ++;
    break;
   case 2:
    // CH1 RANGE -
    if (range1 < RANGE_MAX)
      range1 ++;
    break;
   case 3:
    // RATE FAST
    if (rate > 0)
      rate --;
    break;
   case 4:
    // TRIG MODE
    if (trig_mode < TRIG_ONE)
      trig_mode ++;
    else
      trig_mode = 0;
    break;
   case 5:
    // SEND
    SendData();
    break;
   case 6:
    // TRIG MODE
    if (trig_mode > 0)
      trig_mode --;
    else
      trig_mode = TRIG_ONE;
    break;
   case 7:
    // RATE SLOW
    if (rate < RATE_MAX)
      rate ++;
    break;
   case 8:
    // CH1 RANGE +
    if (range1 > 0)
      range1 --;
    break;
   case 9:
    // CH0 RANGE +
    if (range0 > 0)
      range0 --;
    break;
   case 10:
   default:
    // MENU SW
    menu ++;
     break;
  }
}

void menu1_sw(int sw) {  
  switch (sw) {
   case 0:
    // START/HOLD
    if (Start)
       Start = 0;
     else
       Start = 1;
    break;
   case 1:
    // CH0 offset +
    if (ch0_off < 1023)
      ch0_off += 1024/VREF[range0];
    break;
   case 2:
    // CH1 offset +
    if (ch1_off < 1023)
      ch1_off += 1024/VREF[range1];
    break;
   case 3:
    // trigger level +
    if (trig_lv < 60)
      trig_lv ++;
    break;
   case 4:
   case 6:
    // TRIG EDGE
    if (trig_edge == TRIG_E_UP)
      trig_edge = TRIG_E_DN;
    else
      trig_edge = TRIG_E_UP;
    break;
   case 5:
    // SEND
    SendData();
    break;
   case 7:
    // trigger level -
    if (trig_lv > 0)
      trig_lv --;
    break;
   case 8:
    // CH1 OFF -
    if (ch1_off > -1023)
      ch1_off -= 1024/VREF[range1];
    break;
   case 9:
    // CH0 OFF -
    if (ch0_off > -1023)
      ch0_off -= 1024/VREF[range0];
    break;
   case 10:
   default:
    // MENU SW
    menu ++;
     break;
  }
}

void menu2_sw(int sw) {  
  switch (sw) {
   case 0:
    // START/HOLD
    if (Start)
       Start = 0;
     else
       Start = 1;
    break;
   case 1:
    if (ch0_mode < 2)
      ch0_mode ++;
    break;
   case 2:
    if (ch1_mode < 2)
      ch1_mode ++;
    break;
   case 3:
   case 7:
    // TRIG channel
    if (trig_ch == 0)
      trig_ch = 1;
    else
      trig_ch = 0;
    break;
   case 5:
    // SEND
    SendData();
    break;
   case 8:
    if (ch1_mode > 0)
      ch1_mode --;
    break;
   case 9:
    if (ch0_mode > 0)
      ch0_mode --;
    break;
   case 10:
    // MENU SW
    menu = 0;
     break;
   case 4:
   case 6:
   default:
    // none
    break;
  }
}

void SendData() {
  Serial.print(Rates[rate]);
  Serial.println("/div (10 samples)");
  for (int i=0; i<SAMPLES; i ++) {
      Serial.print(data[sample + 0][i]*MILLIVOL_per_dot[range0]);
      Serial.print(" ");
      Serial.println(data[sample + 1][i]*MILLIVOL_per_dot[range1]);
   }
}

void DrawGrid() {
    for (int x=0; x<=SAMPLES; x += 2) { // Horizontal Line
      for (int y=0; y<=60; y += 10) {
        GLCD.SetDot(x, y, BLACK);
        CheckSW();
      }
    }
    for (int x=0; x<=SAMPLES; x += 10 ) { // Vertical Line
      for (int y=0; y<=60; y += 2) {
        GLCD.SetDot(x, y, BLACK);
        CheckSW();
      }
    }
}

void DrawText() {
    GLCD.FillRect(101,txtLINE0,28,64, WHITE);  // clear text area that will be drawn below
Leider musste ich den Sketch einkürzen ( die  Zeilen am Schluss) da sonst die zulässige Zeichenlänge überschritten wird.

Eventuell kann jemand ja was aus den Code oder dem Plan rauslesen.
30  International / Deutsch / Re: DS18B20 als defekt erkennen on: February 17, 2013, 04:03:44 pm
Hallo mwyraz

danke für die Antwort.
Die -127°C überprüfe ich schon in meinem Sketch und wenn ich dann noch die 85°C auswerte dann müssten eigentlich alle Fehler erschlagen sein.
Die Differenz zwischen den Sensoren kann ich leider nicht auswerten da sie sich in zwei verschiedenen Speichern sind und deshalb schon von Haus aus verschiedene Temperaturwerte haben können.

Vielen Dank Rudi
Pages: 1 [2] 3 4 ... 9