Forum: Mikrocontroller und Digitale Elektronik Hilfe bei Arduino Programm


von SWLer (Gast)


Lesenswert?

Hallo alle.

Ich habe wieder Problemchen. Und zwar spiele ich nezuerdings mit OCXOs 
rum und suchte nach einem Thermometer mit zwei Stellen hinter dem Komma. 
Dann habe ich genau das gefunden was ich suchte und zwar hier:

http://www.dl8ma.de/Arduino/Thermometer_Dallas_ds1820/

Mit unten angehangenem Code. Es soll der DS1822 genutzt werden.

Vorweg, ich habe nicht die geringste Ahnung vom Programmieren. Fuses bei 
einem AVR setzen, kleine Aenderungen, das war es auch schon.

Also flux einen Arduino und solch ein passendes LCD bestellt und dachte 
einfach mal eben den Code kompillieren und dann geht das. Ja von wegen. 
Der Quelltext ist wohl schon aelter, musste ich dann feststellen.
In der aktuellen Umgebung, Arduino 1.0.5 gibt es die OneWire.h nicht 
mehr. Diese habe ich dann einfach durch die Wire.h ersetzt die schon in 
den libraries drin steht. Hat auch etwas weniger Fehler gemacht.
Mit der LCD4Bit_mod.h kann ich nun garnichts anfangen. Da habe ich mit 
einer cristal.h (oder so aehnlich) rumgespielt aber da kamen dann so 
viele Fehler das ich ueberhaupt nicht mehr durchgeblickt habe.

Kurz und schmerzlos.
Ich mag jetzt kein C lernen, mich mit dem Arduino beschaeftigen, also 
ganz bei Null anfangen nur wegen diesem bloeden Programm. Aber leider 
ist genau dieses Progamm ideal fuer meine Zwecke.

Waere vielleicht jemand so nett und koennte mir den unteren Code so 
anpassen, dass ich ihn mit der aktuellen Umgebung kompillieren kann ?
Die LCD Belegung bekomme ich dann schon hin.
Tuete Gummibaerchen oder eine andere Kleinigkeit bin ich gerne bereit 
dafuer abzudruecken.

1
/*
2
  Thermometer mit Dallas 18xx und LCD-Shield
3
 
4
  03.09.2011  Jürgen Mayer, DL8MA, Grossheppach
5
     
6
  Dieser Beispielcode ist public domain.
7
8
*/
9
10
#include <OneWire.h>
11
#include <LCD4Bit_mod.h>
12
13
LCD4Bit_mod lcd = LCD4Bit_mod(2);
14
15
OneWire ds(10);                                          // Datenleitung für Tempatursensor Dallas DS18xx -> Pin 10
16
17
char buffer[20] = "";                                    // Speicherbereich für Datenkonvertierung
18
19
void setup(void) {
20
21
  byte addr[8]; 
22
  Serial.begin(9600);
23
  lcd.init();
24
  lcd.clear();
25
 
26
  if ( !ds.search(addr)) {                              // Sensor angeschlossen?
27
      ds.reset_search();
28
      lcd.printIn( "Sensor nicht" );
29
      lcd.cursorTo(2, 0);
30
      lcd.printIn( "gefunden :-(" );
31
      return;
32
  }
33
34
  lcd.printIn("Thermometer");                           // Ausgabe des Sonsortyps
35
 
36
  if ( addr[0] == 0x10 or addr[0] == 0x28)              // 1-Wire family code
37
    lcd.printIn(" 1820" );
38
  if ( addr[0] == 0x22)
39
    lcd.printIn(" 1822" ); 
40
}
41
42
43
void loop(void) {
44
  byte i;
45
  byte present = 0;
46
  byte data[12];
47
  byte addr[8];
48
  int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
49
50
  if ( !ds.search(addr)) {
51
      ds.reset_search();
52
      return;
53
  }
54
55
  ds.reset();
56
  ds.select(addr);
57
  ds.write(0x44,1);               // Start Konvertierung, mit power-on am Ende
58
59
  delay( 750 );                   // Wartezeit
60
   
61
  present = ds.reset();
62
  ds.select(addr);   
63
  ds.write(0xBE);                 // Messwert ausgeben
64
65
  for ( i = 0; i < 9; i++) {      // 9 Bytes einlesen
66
    data[i] = ds.read();
67
  }
68
69
  LowByte = data[0];
70
  HighByte = data[1];
71
  TReading = (HighByte << 8) + LowByte;
72
  SignBit = TReading & 0x8000;
73
  if (SignBit)           
74
  {
75
    TReading = (TReading ^ 0xffff) + 1; 
76
  }
77
 
78
  if ( addr[0] == 0x10 or addr[0] == 0x28)    // Faktor abhängig vom Sensortyp
79
    Tc_100 = (TReading*100/2);   
80
  if ( addr[0] == 0x22)
81
    Tc_100 = (6 * TReading) + TReading / 4;
82
 
83
  Whole = Tc_100 / 100;          // Ganzzahlen und Brüche trennen
84
  Fract = Tc_100 % 100;
85
86
/* Ausgabe auf serieller Schnittstelle */
87
88
  if (SignBit)                   // negative Werte ermitteln
89
  {
90
     Serial.print("-");
91
  }
92
  Serial.print(Whole);
93
  Serial.print(".");
94
  if (Fract < 10)
95
  {
96
     Serial.print("0");
97
  }
98
  Serial.print(Fract);
99
  Serial.println();
100
101
/* Ausgabe auf LCD-Shield */
102
103
  lcd.cursorTo(2, 0); 
104
  if (SignBit) // negative Werte ermitteln
105
  {
106
     lcd.printIn("-");
107
  }
108
  lcd.printIn( itoa( Whole, buffer, 10 ) );
109
  lcd.printIn(".");
110
  if (Fract < 10)
111
  {
112
     lcd.printIn("0");
113
  }
114
  lcd.printIn( itoa( Fract, buffer, 10 ) );
115
  lcd.printIn( " Grad" );
116
}

von Rainer U. (r-u)


Lesenswert?

SWLer schrieb:
> Es soll der DS1822 genutzt werden.

Nur so aus Interesse - Du hast schon gelesen, dass die Genauigkeit um 2 
Grad schwanken kann? Wozu dann 2 Nachkommastellen?

Wenn Du Dich nicht damit beschäftigen willst, dann kauf doch lieber ein 
fertiges Digitalthermometer.

: Bearbeitet durch User
von SWLer (Gast)


Lesenswert?

Die Arduino Umgebung habe ich eben nochmal komplett geloescht und neu 
installiert.

Version ist 1.0.5

Der Kompiler ist wohl dieser hier

~> avr-gcc --version
avr-gcc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.

von SWLer (Gast)


Lesenswert?

Rainer Unsinn schrieb:
> Nur so aus Interesse - Du hast schon gelesen, dass die Genauigkeit um 2
> Grad schwanken kann? Wozu dann 2 Nachkommastellen?

Die "Genauigkeit" interessiert mich nicht, es interessiert mich nur wie 
weit die Temperatur unter bestimmten Verhaeltnissen, wie Lueften, Fan 
an/aus, Gehaeuse offen/zu, Heizfasen usw. abweicht. Ob das nun auf 2°C 
daneben liegt ist nicht wichtig. Ich brauche nur die Kurve und das ginge 
damit perfekt, da ich es ja per RS232 auslesen koennte.

Rainer Unsinn schrieb:
> Wenn Du Dich nicht damit beschäftigen willst, dann kauf doch lieber ein
> fertiges Digitalthermometer.

Genau danach hatte ich ja gesucht, aber das sollte auch bezahlbar sein, 
sofern man denn ueberhaupt was findet. Vor allem mit logging Funktion.

von Cyblord -. (cyblord)


Lesenswert?

SWLer schrieb:

> Genau danach hatte ich ja gesucht, aber das sollte auch bezahlbar sein,
> sofern man denn ueberhaupt was findet. Vor allem mit logging Funktion.

Nun ja, entweder bauen oder kaufen. Bauen kannst du nicht, also....

von Rainer U. (r-u)


Lesenswert?

den Autor vom Programm hast Du schon per EMail gefragt, ob er die 
Bibliothek noch hat?

von Cyblord -. (cyblord)


Lesenswert?

> Ich mag jetzt kein C lernen, mich mit dem Arduino beschaeftigen, also
> ganz bei Null anfangen nur wegen diesem bloeden Programm. Aber leider
> ist genau dieses Progamm ideal fuer meine Zwecke.
Du willst selber also keine Zeit opfern, aber andere sollen ihre Zeit 
opfern um dir Geld zu sparen? Schon dreist!

von Rainer U. (r-u)


Lesenswert?

cyblord ---- schrieb:
> aber andere sollen ihre Zeit
> opfern um dir Geld zu sparen?

Na 'ne Türe Gummibärchen kannst Du Dir schon verdienen! Wenn Du gut 
verhandelst, vielleicht sogar 2! :-)

von SWLer (Gast)


Lesenswert?

Rainer Unsinn schrieb:
> den Autor vom Programm hast Du schon per EMail gefragt, ob er die
> Bibliothek noch hat?

Nein, habe ich nicht, da er mir schon das Programm zur Verfuegung 
gestellt hat und er wohl kein Interesse hat es zu aktualisieren. 
Vielleicht geht er auch einfach davon aus das es so einfach ist das es 
jeder selber kann.
Sollte es aber jemand aktuell machen, werde ich es ihm 
selbstverstaendlich schicken, es sollen ja auch andere davon profitieren 
koennen.

Die Bibliotheken sind nicht das Problem, die Links stehen ja dabei. nur 
dann meckert der Kompiler das er zu neu ist.
Ich hatte schon versucht das mit einer alten Version in einer Virtuellen 
Maschine zu machen, aber wenn ich den Compiler dazu installieren 
moechte, nimmt er natuerlich den Aktuellen.

cyblord ---- schrieb:
> Du willst selber also keine Zeit opfern, aber andere sollen ihre Zeit
> opfern um dir Geld zu sparen? Schon dreist!

Wieso ist das dreist ? Ich kann es einfach nicht. Und warum muss ich 
jetzt von Grund auf C lernen, nur weil ich ein einziges Programm 
geaendert haben moechte ?
Wenn hier alle so dreist waeren, koennte man dieses Forum automatisieren 
und auf eben diese Antworten begrenzen.
Wie z.B. welchen Widerstand brauche ich fuer diese LED bei der un der 
Spannung ? Autoantwort "Studiere Elektrotechnik".

Was ist nun also dreist ?

Ich habe nur nach Hilfe gefragt, finde ich nicht "Dreist".

von SWLer (Gast)


Lesenswert?

cyblord ---- schrieb:
> Du willst selber also keine Zeit opfern, aber andere sollen ihre Zeit
> opfern um dir Geld zu sparen? Schon dreist!

Fuer jemanden der sich damit auskennt ist das vielleicht eine Sache von 
5min. Ich dagegen habe ueberhaupt keine Ahnung und muesste 
wahrscheinlich Monate investieren. Danach kann ich dann alles wieder 
vergessen, weil es mich nicht interessiert und wahrscheinlich auch nie 
wieder brauchen werde.

von Cyblord -. (cyblord)


Lesenswert?

SWLer schrieb:

> Was ist nun also dreist ?

Unglaublich wie schmerzfrei manche durchs Leben gehen.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Schreib' mir mal. Die Adresse müßtest du noch haben.

von Rainer U. (r-u)


Lesenswert?

lies mal hier, da steht, wo Du die Datei her bekommst und dass sie 
standardmäßig nicht dabei ist:

http://playground.arduino.cc/Learning/OneWire

von SWLer (Gast)


Lesenswert?

Habe ich gelesen und steht auch oben, ist eben alles zu alt. Deswegen 
hatte ich sie gegen die wire.h getauscht. Einige Fehler sind dann auch 
verschwunden, aber das hilft nichts, so lange ich das Problem mit der 
LCD4mod und dem Kompiler nicht geregelt bekomme. Es sind einfach ZU 
viele Fehler auf einmal.

von spess53 (Gast)


Lesenswert?

Hi

>Deswegen hatte ich sie gegen die wire.h getauscht.

Der DS-Chip hat eine 1Wire-Schnittstelle (->OneWire). Wire ist aber beim 
Arduino die TWI-Schnittstelle (I2C). Also etwas vollkommen anderes.

Kein Wunder wenn du Fehlermeldungen bis zu Abwinken bekommst.

MfG Spess

von SWLer (Gast)


Lesenswert?

War ja auch nur ein Versuch.

von Jürgen S. (jurs)


Lesenswert?

SWLer schrieb:
> Habe ich gelesen und steht auch oben, ist eben alles zu alt.

Die OneWire-Library gibt es auch als aktuelle Version für die 
Arduino-IDE ab 1.0 oder höher:
http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip
Musst Du halt die Library installieren, wenn Du sie verwenden möchtest.

Von der merkwürdigen LCD-Library in Deinem Sketch habe ich allerdings 
noch nie etwas gehört. Das würde ich auf die standardmäßige 
LiquidCrystal-Library umschreiben, die zur Arduino-Software dazugehört.
1
#include <OneWire.h>
2
#include <LiquidCrystal.h>
3
// LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // gängige Verkabelung
4
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Für Sainsmart LCD Keypad Shield
5
6
7
OneWire ds(A0);   // Datenleitung für Tempatursensor Dallas DS18xx
8
9
char buffer[20] = "";                                    // Speicherbereich für Datenkonvertierung
10
11
void setup(void) {
12
  Serial.begin(9600);
13
  lcd.begin(16,2);
14
15
  byte addr[8];  
16
  
17
  if ( !ds.search(addr)) {                              // Sensor angeschlossen?
18
      ds.reset_search();
19
      lcd.print( "Sensor nicht" );
20
      lcd.setCursor(0,1);
21
      lcd.print( "gefunden :-(" );
22
      return;
23
  }
24
25
  lcd.print("Thermometer");                           // Ausgabe des Sonsortyps
26
  
27
  if ( addr[0] == 0x10 or addr[0] == 0x28)              // 1-Wire family code 
28
    lcd.print(" 1820" );
29
  if ( addr[0] == 0x22)
30
    lcd.print(" 1822" );  
31
}
32
33
34
void loop(void) {
35
  byte i;
36
  byte present = 0;
37
  byte data[12];
38
  byte addr[8];
39
  int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
40
41
  if ( !ds.search(addr)) {
42
      ds.reset_search();
43
      return;
44
  }
45
46
  ds.reset();
47
  ds.select(addr);
48
  ds.write(0x44,1);               // Start Konvertierung, mit power-on am Ende
49
50
  delay( 750 );                   // Wartezeit
51
    
52
  present = ds.reset();
53
  ds.select(addr);    
54
  ds.write(0xBE);                 // Messwert ausgeben
55
56
  for ( i = 0; i < 9; i++) {      // 9 Bytes einlesen
57
    data[i] = ds.read();
58
  }
59
60
  LowByte = data[0];
61
  HighByte = data[1];
62
  TReading = (HighByte << 8) + LowByte;
63
  SignBit = TReading & 0x8000; 
64
  if (SignBit)            
65
  {
66
    TReading = (TReading ^ 0xffff) + 1;  
67
  }
68
  if ( addr[0] == 0x10 or addr[0] == 0x28)    // Faktor abhängig vom Sensortyp
69
    Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25
70
  if ( addr[0] == 0x22)
71
    Tc_100 = (TReading*100/2);    
72
  
73
  Whole = Tc_100 / 100;          // Ganzzahlen und Brüche trennen
74
  Fract = Tc_100 % 100;
75
76
/* Ausgabe auf serieller Schnittstelle */
77
78
  if (SignBit)                   // negative Werte ermitteln
79
  {
80
     Serial.print("-");
81
  }
82
  Serial.print(Whole);
83
  Serial.print(".");
84
  if (Fract < 10)
85
  {
86
     Serial.print("0");
87
  }
88
  Serial.print(Fract);
89
  Serial.println();
90
91
/* Ausgabe auf LCD-Shield */
92
93
  lcd.setCursor(0,1);  
94
  if (SignBit) // negative Werte ermitteln
95
  {
96
     lcd.print("-");
97
  }
98
  lcd.print( itoa( Whole, buffer, 10 ) );
99
  lcd.print(".");
100
  if (Fract < 10)
101
  {
102
     lcd.print("0");
103
  }
104
  lcd.print( itoa( Fract, buffer, 10 ) );
105
  lcd.print( " Grad" );
106
}

Für einen probeweise drangehängten Testsensor vom Typ DS18B20 mußte ich 
allerdings die if-Bedingung in der Zeile mit dem Kommentar "Faktor 
abhängig vom Sensortyp" vertauschen, damit er die richtige Temperatur 
anzeigt. Wenn bei Dir die falsche Temperatur angezeigt wird, tausche die 
Bedingung zurück.

von Kai S. (zigzeg)


Lesenswert?

SWLer schrieb:
> In der aktuellen Umgebung, Arduino 1.0.5 gibt es die OneWire.h nicht
> mehr. Diese habe ich dann einfach durch die Wire.h ersetzt die schon in
> den libraries drin steht.

Voellig falsch: Hat es nie in der Umgebung gegeben. Musste man schon 
immer von Hand installieren. Einfach hier runterladen:

http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip

und als Library hinzufuegen. Dann sollten schon mal alle OneWire 
Probleme verschwinden.

SWLer schrieb:
> Ich mag jetzt kein C lernen, mich mit dem Arduino beschaeftigen, also
> ganz bei Null anfangen nur wegen diesem bloeden Programm. Aber leider
> ist genau dieses Progamm ideal fuer meine Zwecke.

Tja, dann wird das wohl nichts.

ZigZeg

von SWLer (Gast)


Lesenswert?

Jürgen S. schrieb:
> Von der merkwürdigen LCD-Library in Deinem Sketch habe ich allerdings
> noch nie etwas gehört. Das würde ich auf die standardmäßige
> LiquidCrystal-Library umschreiben, die zur Arduino-Software dazugehört.

Komisch, dass habe ich genau so versucht, es gibt ja genuegend 
Beispiele wo das so drin steht. Aber beim kompilieren gab es immer 
Fehler.

Ich mache das jetzt nochmal alles neu und lade die Dateien nochmal 
frisch runter.

Das hast Du jetzt mit der aktuellen IDE gemacht ? Also mit der 1.0.5 ? 
Und welche Kompilerversion ?

von SWLer (Gast)


Lesenswert?

Kai S. schrieb:
> Voellig falsch: Hat es nie in der Umgebung gegeben. Musste man schon
> immer von Hand installieren. Einfach hier runterladen:

Stimmt, hatte ich auch mit der LCD4Bit_mod verwechselt, die gibt es seit 
Version 0023 oder so nicht mehr, dann aendert sich das in diese 
LiquidCrystal.h die ja schon drin ist.

Die OneWire.zip hatte ich natuerlich installiert. Die fehlenden 
libraries stehen ja auch in der Anleitung.

Kai S. schrieb:
> SWLer schrieb:
>> Ich mag jetzt kein C lernen, mich mit dem Arduino beschaeftigen, also
>> ganz bei Null anfangen nur wegen diesem bloeden Programm. Aber leider
>> ist genau dieses Progamm ideal fuer meine Zwecke.
>
> Tja, dann wird das wohl nichts.

Warum nicht ? Bei  Jürgen S. (jurs) funktioniert es doch. Da werde ich 
wohl noch irgendeinen anderen Fehler haben. Und ich hoffe der ist gleich 
mit der Neuinstallation verschwunden.

von Jürgen S. (jurs)


Lesenswert?

SWLer schrieb:
> Das hast Du jetzt mit der aktuellen IDE gemacht ? Also mit der 1.0.5 ?
> Und welche Kompilerversion ?

Der von mir gepostete Code kompiliert unter Arduino 1.0.5 fehlerfrei für 
die 8-Bit Controller-Boards (UNO, MEGA etc.) zu einem funktionierende 
Sketch, wenn man eine passende OneWire-Library richtig installiert hat.

Inwieweit der Sketch dann bei Dir tatsächlich "funktioniert" hängt 
natürlich auch davon ab, ob alles richtig angeschlossen und eingestellt 
ist.

Also insbesondere Baudrate 9600 Baud im seriellen Monitor für die 
Serial-Ausgabe, die Anschluss-Pins des LCD-Displays so wie es im Sketch 
definiert ist, und der Sensor am angegebenen Pin mit einem 
PullUp-Widerstand angeschlossen.

von SWLer (Gast)


Lesenswert?

Hi,

funktioniert einwandfrei. Ich habe auch das Sainsmart - LCD, brauchte da 
also nichts zu aendern.
An was das jetzt genau lag bin ich ueberfragt.

Ich habe jetzt einfach alles geloescht, neu installiert, nur die 
OneWire.h eingebunden, ist ja nur ein Klick, Deinen Quelltext 
eingefuegt, abgespeichert und kompiliert. Hochgeladen, geht. Also 
zumindest zeigt er "Sensor nicht gefunden" an, wie es sein soll.

Nur habe ich doof statt der Dallas Tuete eine Tuete BC irgenwas 
Transistoren im halbschlaf eingepackt. Also ausprobieren kann ich das 
leider erst morgen. Ich bin aber ueberzeugt das jetzt alles geht wie es 
soll. Ich gebe dann eine Rueckmeldung.

Jedenfalls vielen Dank, Du hast mir sehr geholfen.
Wegen den Gummibaerchen melde ich mich noch. Und sag nicht nein, ich 
hasse es wenn jemandem geholfen wird und man kann sich nicht bedanken 
:o)

Ich meine ich haette mich hier mal registriert, kann aber den Zugang 
nicht finden. Bekommen wir aber hin.

Einen fehler habe ich allerdings noch. Oder was heisst Fehler, eine 
Warnung, und die soll man nicht so genau nehmen habe ich mal gelesen.

/usr/bin/avr-ld: warning: -z relro ignored.

Wenn ich in der avr-ld in die Hilfe gucke, gibt es den Befehl -z relro 
garnicht. Nur von woher wird der aufgerufen ? Weiss das zufaellig jemand 
? Ist nur interessehalber, funktioniert ja anscheinend auch so. Aber 
vielleicht kann man das auch noch beheben, dann waere alles "sauber".

von Jürgen S. (jurs)


Lesenswert?

SWLer schrieb:
> funktioniert einwandfrei. Ich habe auch das Sainsmart - LCD, brauchte da
> also nichts zu aendern.
> An was das jetzt genau lag bin ich ueberfragt.

Am LCD-Keypad-Shield ist das hier absolut tödlich, wie es in Deinem 
Sketch stand, wenn Du das nicht geändert hast
1
OneWire ds(10);

Pin-10 am LCD-Keypad-Shield ist nämlich der Pin für die Steuerung der 
Hintergrundbeleuchtung des LCD-Displays.

Denselben Pin kannst Du natürlich nicht zweimal verbraten, einmal für 
die Steuerung der Hintergrundbeleuchtung am LCD und einmal für den 
OneWire-Bus zum Temperaturmessen.

Also lieber den Analogpin A0 als Digitalpin zweckentfremden als Pin-10 
doppelt verbraten wollen.

von SWLer (Gast)


Lesenswert?

Jürgen S. schrieb:
> Am LCD-Keypad-Shield ist das hier absolut tödlich, wie es in Deinem
> Sketch stand, wenn Du das nicht geändert hast

> OneWire ds(10);

Hi,

Danke fuer den Hinweis, aber Du hast in dem oberen, "nicht 
funktionierenden" Programm geguckt. Juergen hatte das auf A0 geaendert, 
welcher aber bei mir durch einen Tester belegt ist. Es gibt mindetsens 
100 verschiedene Sainsmart - LCD - Boards.

ALSO LEUTE !!

Ich kann nicht verstehen wie Ihr mit diesen voellig ueberteuerten 
Arduino QUATSCH klar kommt.
Nun habe ich mir einen Arduino UNO Ver. 1 gekauft. Dazu brauchte ich ein 
Schield, wie in der Beschreibung, nur um einen Widerstand zu plazieren, 
dazu das Sainsmart LCD. Der ganze Spass kostete so um die 50.- und ich 
bin echt enttaeuscht. (von der Hardware) Das das Programm nicht 
funktionierte, dafuer kann der Autor nix. Unahnung meinerseits.

Okay, also habe ich nun von Juergen das !!! fertige und funktionierende 
!!! Programm bekommen, nochmal herzlichen Dank, .....

ABER

Erst mal passt das Shield nicht an das Sainsmart. Ich dachte Arduino 
waere ein "System", also zusammenstecken und gut. Ja Anfaenger, viel 
Spass!
Dann sucht man sich einen Wolf nach den Belegungen/Schaltbildern, weil 
es mindestens 100 verschiedene Versionen und voellig bekloppte 
Belegungsbezeichnungen  gibt.
Irgendwann habe ich aufgegeben und das Programm ueber die Konsole 
kopiliert. Diesen AtMega in mein STK500 gesteckt, was easy war, weil da 
die Belegungen so bezeichnet sind wie es sein soll.
Per AVRDude drauf geschoben, LCD und Dallas angeschlossen und alles ist 
gut.

Sind Arduino Nutzer Masochisten, oder was soll das Alles ?
Keine gescheite Pinbelegung. Wie lange habe ich gesucht bis ich 
rausbekommen habe wo dieser abge.... Pin 10 ist!
Warum bitte benennt man die Beinchen vom ATMega nicht so wie im 
Datenblatt?

Ganz doll war es dann beim Sainsmart - LCD - Board. Da stand dann 
garnichts mehr drauf. Zur Kroenung ist das auch noch eine schwarze 
Platine wo man nix sieht. ohne Durchgangspruefer, kein Plan.

Nun laeuft es auf dem STK500 wie es soll, weil auf dem naemlich alles so 
drauf steht wie es auch im Datenblatt steht.
Ich persoenlich werde nie wieder was mit dem Arduino zu tun haben 
wollen.

Danke an alle, aber dieser Arduino .... ist fuer mich gestorben. Das ist 
einfach nur Krampf. (Von einer absoluten C - Niete festgestellt)

@Juergen
Du hast Post

von Ulli B. (fennec)


Lesenswert?

SWLer und fennec ist das Selbe, ich hatte nur meinen Zugang vergessen.

Ach so, von wegen Arduino und Preis.
Die ganze Geschichte kostete mich um die 50.-
Das ganze Spiel geht mit einem ollen Mega8 genauso gut. Dazu ein 
bisschen Lochraster, ein LCD, der Dallas kostet etwas, aber mit 15.- 
kommt man locker hin.
Programmiergeraet vorausgesetzt. Aber das braucht man ja eh

: Bearbeitet durch User
von Chr. M. (snowfly)


Lesenswert?

Du willst einen Temperaturlogger aber nicht programmieren lernen
dann kauf dir doch einen.
20€:http://www.dx.com/p/jingchuang-rc-3-mini-usb-1-2-screen-temperature-data-logger-black-1-x-cr2450-233254
Hat zwar nur eine Nachkommastelle aber aus gutem Grund.
Wenn Du unbedingt die zweite Nachkommastelle haben willst kannst du ja 
eine Zufallszahl hinhängen.

von Ulli B. (fennec)


Lesenswert?

Hauptsache was geschrieben, oder wie interpretierst Du Deinen Beitrag ?

Du willst einen Ferrari? Bau Dir doch einen.
Warum halten die, die keine Ahnung haben, nicht einfach die Fresse 
(Dieter Nuhr)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.