RR
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
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
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
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
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
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
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
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
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
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
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
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
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
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); |