Forum

Einloggen | Registrieren | RSS  

RR

E-Mail

25.06.2019,
17:21
 

Nano, I2C, LCD geht nicht (Elektronik)

Hallo!
Nachdem ich im Arduino-Forum gescheitert bin, einen neuen Thread zu erstellen, stelle ich mal meine Frage hier. Ein Nano (China) ist via I2C mit einer DS3231 und einem 16-2 Lcd Display verbunden, die Uhr geht, das Display nicht. Mit UNO funktioniert beides, auch mit dem Chinaclone-UNO. Der Nano geht nur mit dem alten Bootloader.
Hier mal das Programm (Datum und Zeit wird 3 s dargestellt, dann 3s die aktuelle Temperatur sowie die höchste und tiefste seit dem letzten Reset. Das Display ist von der Art, für die es bei YouTube zig Anleitungen gibt...einen Namen hat es nicht.

#include <Wire.h>
#include "RTClib.h"
//#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);
RTC_DS3231 rtc;
int T = A0; //Eingang für Temperatur

float TempMin = 100.0;
float TempMax = -50.0;
float Tempi;
float volt;
float TempC;


void setup() {
// put your setup code here, to run once:
pinMode(T, INPUT);
Serial.begin(57600);
lcd.begin(16,2);

delay(3000); // wait for console opening
lcd.clear();
lcd.setCursor(0,0);

if (! rtc.begin()) {
Serial.println("Couldn't find RTC";);
while (1);
}


}

void loop() {
// put your main code here, to run repeatedly:
DateTime now = rtc.now();


Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
//Serial.print(" (";);
//Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
//Serial.print(";) ";);
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
lcd.clear();
lcd.setCursor(2,0);
lcd.print(now.day(), DEC);
lcd.setCursor(5,0);
lcd.print(now.month(), DEC);
lcd.setCursor(8,0);
lcd.print(now.year(), DEC);
lcd.setCursor(3,1);
lcd.print(now.hour(), DEC);
lcd.setCursor(6,1);
lcd.print(now.minute(), DEC);
lcd.setCursor(9,1);
lcd.print(now.second(), DEC);


delay(3000);


Tempi = analogRead(0);
volt = Tempi*5.0/1023.0;
TempC = (volt - 1.375) / 0.0225;
if(TempC <= TempMin)
{
TempMin = TempC;
//TempMin = String(Tempi);
}



if(TempC >= TempMax)
{
TempMax = TempC;
//TempMax = String(Tempi);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp:";);
lcd.setCursor(0,1);
lcd.print("MiMa:";);
lcd.setCursor(7,0);
lcd.print(TempC,1);
lcd.setCursor(5,1);
lcd.print(TempMin,1);
lcd.setCursor(11,1);
lcd.print(TempMax,1);
Serial.print(TempC);
delay(3000);

}
Ich hoffe mal, Bastelix liest mit... Gruß RR

RR

E-Mail

25.06.2019,
18:39

@ RR

Nano, I2C, LCD geht nicht

Verdammt, es ist der Nano selber. Hatte ihn eingelötet und mochte deshalb erstmal nicht tauschen.
Nu gehts, bleibt die Frage, warum geht die Uhr und das Display nicht?
Kann das mit einer - zu - falschen Taktfrequenz zu tun haben?
Gruß RR

xy(R)

E-Mail

25.06.2019,
18:45

@ RR

Nano, I2C, LCD geht nicht

» Nu gehts, bleibt die Frage, warum geht die Uhr und das Display nicht?
» Kann das mit einer - zu - falschen Taktfrequenz zu tun haben?

Schon möglich. Was wird denn als I2C-->parallel Wandler verwendet?

Gast

25.06.2019,
19:14

@ RR

Nano, I2C, LCD geht nicht

Welche I²C-Adresse ist bei der RTC gejumpert? Welche Defaultadresse hat diese?

RR

E-Mail

25.06.2019,
19:22

@ xy

Nano, I2C, LCD geht nicht

» » Nu gehts, bleibt die Frage, warum geht die Uhr und das Display nicht?
» » Kann das mit einer - zu - falschen Taktfrequenz zu tun haben?
»
» Schon möglich. Was wird denn als I2C-->parallel Wandler verwendet?
keine Ahnung, auf der Platine ist ja nur der Atme 328Pl und der ominöse CH340/341

RR

E-Mail

25.06.2019,
19:25

@ Gast

Nano, I2C, LCD geht nicht

» Welche I²C-Adresse ist bei der RTC gejumpert? Welche Defaultadresse hat
» diese?
Hab ich gescannt und vergessen, das Display hat 0x27.

xy(R)

E-Mail

25.06.2019,
19:31

@ RR

Nano, I2C, LCD geht nicht

» » » Nu gehts, bleibt die Frage, warum geht die Uhr und das Display nicht?
» » » Kann das mit einer - zu - falschen Taktfrequenz zu tun haben?
» »
» » Schon möglich. Was wird denn als I2C-->parallel Wandler verwendet?
» keine Ahnung, auf der Platine ist ja nur der Atme 328Pl und der ominöse
» CH340/341

Am Display! Was wird *dort* verwendet?

RR

E-Mail

25.06.2019,
20:55

@ xy

Nano, I2C, LCD geht nicht

» » » » Nu gehts, bleibt die Frage, warum geht die Uhr und das Display
» nicht?
» » » » Kann das mit einer - zu - falschen Taktfrequenz zu tun haben?
» » »
» » » Schon möglich. Was wird denn als I2C-->parallel Wandler verwendet?
» » keine Ahnung, auf der Platine ist ja nur der Atme 328Pl und der ominöse
» » CH340/341
»
» Am Display! Was wird *dort* verwendet?
PCF85741, auf den zwei gebondeten steht natürlich nix drauf.

xy(R)

E-Mail

25.06.2019,
20:57

@ RR

Nano, I2C, LCD geht nicht

» PCF8574

Also max 100kHz I2C Takt.

Oszi wird wohl keines zur Verfügung stehen?

RR

E-Mail

25.06.2019,
21:02

@ xy

Nano, I2C, LCD geht nicht

» » » » Nu gehts, bleibt die Frage, warum geht die Uhr und das Display
» nicht?
» » » » Kann das mit einer - zu - falschen Taktfrequenz zu tun haben?
» » »
» » » Schon möglich. Was wird denn als I2C-->parallel Wandler verwendet?
» » keine Ahnung, auf der Platine ist ja nur der Atme 328Pl und der ominöse
» » CH340/341
»
» Am Display! Was wird *dort* verwendet?

Es ist halt so, wer glaubt, für 1,95 einen guten Wein zu bekommen, der gehört vergiftet.
Und drei Nanos für 9,50 ? Muß man halt einen wegschmeißen.
Hab übrigens 2 Displays ausprobiert, bei beiden das gleiche.

RR

E-Mail

25.06.2019,
21:06

@ xy

Nano, I2C, LCD geht nicht

» » PCF8574
»
» Also max 100kHz I2C Takt.
»
» Oszi wird wohl keines zur Verfügung stehen?

doch, das schon. Aber sind die so schnell? Hatte eine Störung auf dem Analogeingang syncron mit dem Bus,
die war aber nur bei 10 kHz.

xy(R)

E-Mail

25.06.2019,
21:07

@ RR

Nano, I2C, LCD geht nicht

» » » PCF8574
» »
» » Also max 100kHz I2C Takt.
» »
» » Oszi wird wohl keines zur Verfügung stehen?
»
» doch, das schon. Aber sind die so schnell?

Miss doch einfach den Takt.

RR

E-Mail

25.06.2019,
21:14

@ xy

Nano, I2C, LCD geht nicht

» » » » PCF8574
» » »
» » » Also max 100kHz I2C Takt.
» » »
» » » Oszi wird wohl keines zur Verfügung stehen?
» »
» » doch, das schon. Aber sind die so schnell?
»
» Miss doch einfach den Takt.
meinst Du an Pin 17 am 328?
oder direkt am Bus?

xy(R)

E-Mail

25.06.2019,
21:32

@ RR

Nano, I2C, LCD geht nicht

» oder direkt am Bus?

Ja.

gast

25.06.2019,
21:44

@ RR

Nano, I2C, LCD geht nicht

» Hallo!
» Nachdem ich im Arduino-Forum gescheitert bin, einen neuen Thread zu
» erstellen, stelle ich mal meine Frage hier. Ein Nano (China) ist via I2C
» mit einer DS3231 und einem 16-2 Lcd Display verbunden, die Uhr geht, das
» Display nicht. Mit UNO funktioniert beides, auch mit dem Chinaclone-UNO.
» Der Nano geht nur mit dem alten Bootloader.
» Hier mal das Programm (Datum und Zeit wird 3 s dargestellt, dann 3s die
» aktuelle Temperatur sowie die höchste und tiefste seit dem letzten Reset.
» Das Display ist von der Art, für die es bei YouTube zig Anleitungen
» gibt...einen Namen hat es nicht.

» LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

für ein I2C Display ein wenig viel Paramter
https://funduino.de/nr-19-i%C2%B2c-display

xy(R)

E-Mail

25.06.2019,
21:48

@ gast

Nano, I2C, LCD geht nicht

» » LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);
»
» für ein I2C Display ein wenig viel Paramter
» https://funduino.de/nr-19-i%C2%B2c-display

Zweifellos!

LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);