Forum: Mikrocontroller und Digitale Elektronik LCD-Modul TC1602E-01 von Pollin ansteuern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gast1 (Gast)


Lesenswert?

Hi,
ich habe folgendes Display von Pollin "LCD-Modul TC1602E-01". Ich kann 
das Display zwar initialisieren jedoch kann ich keinerlei Text auf dem 
Display ausgeben.
Ich habe leider keinerlei Info gefunden welcher Controller auf dem 
Display ist.

Ich verwende die lcd-lib "lcd-routines.c" von avgcc-tutorial, habe auch 
schon gelesen das es mit der fleury lib funktioniert und habe diese 
durchgearbeitet. Jedoch konnte ich keinerlei Unterschiede zwischen den 
beiden Libs finden.

verwende nur folgenden kleinen Test-Code:


#include "globals.h"

void main (void)
{

lcd_init();
lcd_string("init ready");
while(1)
{}

}

Hatte jemand von euch schon mal dieses Problem und hat einen Unterschied 
in den Libs gefunden?

von Gast1 (Gast)


Lesenswert?

kleiner Nchtrag.

Display lässt sich nicht initialisieren.

Am Anfang wird ein schwarzer Balken angezeigt solang nicht mit µC 
kommuniziert wird sobald irgendetwas übertragen wurde verschwindet der 
schwarze balken jedoch wird nicht richtig initialisiert.

Habe versucht mit blinkenden Cursor zu initialisieren, Cursor wird 
jedoch nicht angezeigt!

von Pete K. (pete77)


Lesenswert?

Der Test-Code ist zwar sehr klein, aber nicht ausreichend um
a) das Display anzusteuern
b) eine Hilfestellung zu geben

Wie sieht die Schaltung aus, welcher µC wird verwendet?

Hast Du den Kontrast richtig angeschlossen und mal verändert?

Industriestandard könnte HD44780 kompatibel heissen...

von Marcel (Gast)


Lesenswert?

Er sagte doch, das die eine Libary nicht funktioniert, die andere aber 
schon. Ein Fehler in der Beschaltung oder beim Kontrast wird also 
weniger das Problem sein, sondern vielmehr ein anderes Timing oder eine 
andere Sequenz von Befehlen, die zum Display gesendet wird.
Ich kenne nun nicht fleury lib und kann daher leider nicht weiterhelfen, 
würde dir aber mal raten dir das Timing der Wartezyklen anzuschauen. Die 
konnten afaik etwas je nach Hersteller des Controllers variieren. Viel 
Erfolg.

von Gast1 (Gast)


Lesenswert?

Wie gesagt erkenne ich leider keine Unterschiede bei den Timings etc. 
...
Vielleicht gibt es jemanden der auch dieses Display verwendet und eine 
eigene LCD_init hat und mir somit helfen könnte.

Weiß jemand welcher Controller genau verwendet wird, dann könnte man die 
infos ja aus dem Datenblatt beziehen? Wie bekomme ich den Controller-Typ 
heraus?

von holger (Gast)


Lesenswert?


von Gast1 (Gast)


Lesenswert?

Den Beitrag habe ich gelesen.

Vermute das Display gefunden zu haben
http://www.tinsharp.com/en/displayproduct.html?proID=1507104
werde jetz mal die Controller vergleichen SPLC780D - Standard HD4470 und 
meine Lib aus dem Tutorial anpassen.

von Wolfgang-G (Gast)


Angehängte Dateien:

Lesenswert?

Wenn Du nicht zu hohe Forderungen an den Programmierstil stellst, hier 
ein Programmschnipsel für deine Flüssigkristallanzeige (FKA). (läuft bei 
mir an TC1602E-01)
Mit FKA_einrichten() sollte die Anzeige starten.
der „Rest“ des Programms ist Beiwerk.
Allerdings sind meine Programme vorzugsweise in Deutsch geschrieben.
(hier für MSP430)
MfG

von viellöter (Gast)


Lesenswert?

Hallo,
ich hab das Display schon ein par mal verbaut und es wird
angesprochen wie die meisten HD44780 kompatibeln LCD's

Zu beachten ist lediglich, das die versorgung vertauscht ist.
Bei Standart-Display's ist pin 1=GND, Pin 2=+ .....
Nicht so bei diesem! Pin 1=+5V, Pin 2=GND und dann normal weiter.

MfG

von A. M. (am85)


Lesenswert?

Hi

Um keinen neuen Thread zu eröffnen, poste ich einfach mal hier. Ich habe 
im Endeffekt das Gleiche Problem. Ich habe das besagte LCD über einzelne 
Testkabel an den Port C menes ATmega32 (16 MHz Quarz) wie folgt 
angeschlossen:

Pin 1 (Vdd) -> +5V
Pin 2 (Vss) -> GND
Pin 3 (V0) -> Poti
Pin 4 () -> PortC0
Pin 5 () -> PortC1
Pin 6 () -> PortC2
Pin 7 () -> GND
Pin 8 () -> GND
Pin 9 () -> GND
Pin 10() -> GND
Pin 11() -> PortC4
Pin 12() -> PortC5
Pin 13() -> PortC6
Pin 14() -> PortC7
Pin 15(A) -> hängt in der Luft
Pin 16(K) -> hängt in der Luft

Die Pins der Hintergrundbeleuchtung offen zu lassen ist zwar nicht schön 
und wird wohl auch nicht so bleiben, sollte aber keine Probleme beim 
ansprechen des LCDs verursachen. Ich benutze die Bibliothek von Fleury 
(http://jump.to/fleury) und habe sie folgendermaßen umgeändert:
1
/** 
2
 *  @name  Definitions for MCU Clock Frequency
3
 *  Adapt the MCU clock frequency in Hz to your target. 
4
 */
5
#define XTAL 16000000              /**< clock frequency in Hz, used to calculate delay timer */
6
7
/**
8
 *  @name Definitions for 4-bit IO mode
9
 *  Change LCD_PORT if you want to use a different port for the LCD pins.
10
 *
11
 *  The four LCD data lines and the three control lines RS, RW, E can be on the 
12
 *  same port or on different ports. 
13
 *  Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on
14
 *  different ports. 
15
 *
16
 *  Normally the four data lines should be mapped to bit 0..3 on one port, but it
17
 *  is possible to connect these data lines in different order or even on different
18
 *  ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions.
19
 *  
20
 */
21
#define LCD_PORT         PORTC        /**< port for the LCD lines   */
22
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
23
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
24
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
25
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
26
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
27
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
28
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
29
#define LCD_DATA3_PIN    7            /**< pin for 4bit data bit 3  */
30
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
31
#define LCD_RS_PIN       0            /**< pin  for RS line         */
32
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
33
#define LCD_RW_PIN       1            /**< pin  for RW line         */
34
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
35
#define LCD_E_PIN        2            /**< pin  for Enable line     */

Mein Code sieht wie folgt aus:
1
#include <avr/io.h>
2
#include "lcd.h"
3
4
int main(void)
5
{
6
  lcd_init(LCD_DISP_ON_CURSOR);
7
  lcd_clrscr();
8
  lcd_home();
9
  lcd_putc('c');
10
11
  while(1)
12
        {
13
        }
14
}

Auf dem Display ist die oberste Reihe schwarz, was sie schon nach dem 
ersten Anschließen ohne Programmcode auf dem mega war. Sonst passiert 
nichts.

Wo könnte ich nach möglichen (bekannten?) Fehlern suchen?

Schon einmal danke und Schöne Grüße.

von spess53 (Gast)


Lesenswert?

Hi

>Wo könnte ich nach möglichen (bekannten?) Fehlern suchen?

JTAG abgeschaltet?

MfG Spess

von A. M. (am85)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Wo könnte ich nach möglichen (bekannten?) Fehlern suchen?
>
> JTAG abgeschaltet?
>
> MfG Spess

Jupp, ist aus. Habe es eben extra nochmal kontrolliert.

von A. M. (am85)


Lesenswert?

Mh, hat vielleicht noch jemand eine Idee, was man testen könnte?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

André M. schrieb:
> Pin 7 () -> GND
> Pin 8 () -> GND
> Pin 9 () -> GND
> Pin 10() -> GND

Ich weiss nicht, warum sich das so hartnäckig hält, aber die Pins lässt 
man offen und groundet sie nicht. Das Display hat interne Pullups, 
wenn also die Datenmleitungen extern gegroundet werden, geben sie nicht 
nur falsche Daten, sondern verbrauchen auch noch Strom.

von A. M. (am85)


Lesenswert?

Matthias Sch. schrieb:
> André M. schrieb:
>> Pin 7 () -> GND
>> Pin 8 () -> GND
>> Pin 9 () -> GND
>> Pin 10() -> GND
>
> Ich weiss nicht, warum sich das so hartnäckig hält, aber die Pins lässt
> man offen und groundet sie nicht. Das Display hat interne Pullups,
> wenn also die Datenmleitungen extern gegroundet werden, geben sie nicht
> nur falsche Daten, sondern verbrauchen auch noch Strom.

Heißt also, dass das der Übeltäter sein kann?

von holger (Gast)


Lesenswert?

>wenn also die Datenmleitungen extern gegroundet werden, geben sie nicht
>nur falsche Daten, sondern verbrauchen auch noch Strom.

Und sogar noch ein bisschen mehr Strom wenn man das
Display auch noch ausliest so wie Fleury. Dann sind die
Pins Ausgänge.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

holger schrieb:
> Und sogar noch ein bisschen mehr Strom wenn man das
> Display auch noch ausliest so wie Fleury. Dann sind die
> Pins Ausgänge.

Du meinst, das selbst im 4-bit Mode diese Pins angetrieben werden? 
Könnte natürlich sein, ich habs noch nie ausprobiert. Jedenfalls muss 
irgendwo die Fehlinformation mit den 'Pins auf Ground' rumschwirren. Im 
AVR-Tutorial LCD stehts aber richtig.
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD

von Hans W. (Gast)


Lesenswert?

Guten Tag,
dieser Eintrag ist zwar schon einige Tage alt.
aber vieleicht bekommt man ja doch noch mal eine Antwort auf meine 
Frage.

Ich hab mir dieses CD Dispaly von Pollin besorgt.
Angeklemmt ist alles Hintergrund Leuchtet, es kommt keine Anzeige bis 
auf
eine Reihe von Quadraten (schwarz) und sonnst ist das Teil 
Rechtschweigsam.

Eine Osziloscope Messung an den Controller ergab alles in Arbeit...

Anzeige 4 Bit.

Anschlüsse Controller:
Port b.4=Db4
Port b.5=Db5
Port b.6=Db6
Port b.7=Db7
Port b.0= E
Port b.1= RS

BASCOM Prg Abschnitt LCD Anzeige:

*********************************LCD************************************ 
***

 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 ,
 Db7 = Portb.7 , E = Portb.0 , Rs = Portb.1
 Config Lcdbus = 4
 Cursor Off
 Cls



Enable Interrupts
Config Date = Dmy , Separator = .
Dim Wtag As String * 2

************************************************************************ 
***

Welcher Fehler könnte dort Anliegen?
Danke für die Antworten.

von Hans W. (Gast)


Lesenswert?

Vergessen zu erwähnen.
Die Quadrate stehen nur in der oberen Reihe unten ist alles Frei.

von Winne Z. (rugbywinne)


Lesenswert?

Stimmt der Beitrag ist schon etwas alt.

Aber hier noch eine Möglichkeit.
Ich verwende viele dieser und ähnliche Displays.

Ab und zu ist eins mal defekt und zeigt genau dieses an was du 
beschreibst.

"Schwarze Balken in der oberen Reihe."

Hast du die Möglichkeit ein zweites Display zu verwenden ?

(Sorry wenn das schon vorgeschlagen wurde)

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Die meisten Probleme kommen von der elend langsamen Ansteuerung, da muss 
man viele Warteschleifen einbauen, sonst klappt das nicht. Im originalen 
Datenblatt zum HD44780 (ja das ist DER "Industriestandard") gibt es ein 
genaues Ablaufdiagramm, und da stehen alle nötigen Wartezeiten drin.

von Winne Z. (rugbywinne)


Lesenswert?

Also ich habe die Zeile
1
Config Lcd = 16 * 2
immer nach der Zeile
1
Config Lcdpin = ...
zu stehen, sollte aber nichts ausmachen.

In Bascom gibt es noch den Befehl
1
INITLCD
Wenn du den NICHT verwendest wird automatisch zu Beginn des Programms 
einer ausgeführt.
Wenn Du ihn im Programm erst später verwendest wird er nicht automatisch 
ausgeführt, sondern zum ersten mal an der Stelle wo er steht.

Solltest du also vor der Ausführung von INITLCD etwas ans Display 
schicken, passiert gar nichts.

von Winne Z. (rugbywinne)


Lesenswert?

noch was:
bei mir läufts auch ohne
1
Config Lcdbus = 4

Probier doch mal im CONFIG LCD einen anderen Chipsatz aus.

: Bearbeitet durch User
von Hans W. (Gast)


Lesenswert?

Mein Ozi sagt /zeigt mir das Was aus den Controller Anschlüssen raus 
kommt.
also könnte man davon erstmal ?(Theoretisch) ausgehen das der Controller 
Arbeitet so wie er soll.

ich Probiere mal (was ich nicht hoffe!) das das Display einen
Defekt hat...könnte ja auch sein.
Ich melde mich dann wieder.
Danke erstmal für eure Antworten.

von Hans W. (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag,
Es hat sich erledigt!

man sollte die 5 Restlichen Verbliebenen Anschlüsse im (4-Bit Mode) auf
Masse legen dann Funktioniert es wenigstens!

Soweit sogut ich habe ein DCF MOdul von Reichelt...das ist ein wenig 
Schwach auf der Brust...so die info aus eurem Forum.

Habe deswegen der kleinen Plat. einen Transistor eingebaut der einen %V 
pegel runter zieht .
Laut meinem Hameg liegt ein sauberer Pegel von +3.0V an an meinem 
Stecker u.
Trozdem wandelt der Controller an Pin 6 das ankommende Signal nicht  um,
istg mein Reichelt Platinchen noch zu Schwach?

habe mir Vorsorglich ein Conrad Modul Bestellt, das hat hier am Besten 
Abgeschnitten.

von Winne Z. (rugbywinne)


Lesenswert?

Erstaunlich
ich hab hier eine Anwendung da sind die unbenutzten Pins offen und es 
geht seit Jahren ohne Störung. Auch in der Serie.

Hier ist so ein 1602 Display drin, die es von vielen Anbietern gibt. Da 
ist meist ein HD44780 controller oder was Kompatibles drin.

Ich glaube das Thema "4/8 Bit Pins offen oder gegen Ground bei LCD 
Displays" wurde hier schon mal in einem andern Thread diskutiert.

von spess53 (Gast)


Lesenswert?

Hi

>man sollte die 5 Restlichen Verbliebenen Anschlüsse im (4-Bit Mode) auf
>Masse legen dann Funktioniert es wenigstens!

Nein. Die vier Datenleitungen haben interne PullUp-Widerstände. Da ist 
GND kontraproduktiv. Kostet nur unnötig Strom.

RW muss natürlich auf L gelegt werden.

MfG Spess

von Roland F. (rhf)


Lesenswert?

Hallo
Hans   W. schrieb:
> man sollte die 5 Restlichen Verbliebenen Anschlüsse im (4-Bit Mode) auf
> Masse legen dann Funktioniert es wenigstens!

Auf Controller- oder Display-Seite?

rhf

von Hans W. (Gast)


Lesenswert?

Display seite meines ist von pollin das hat einen Block auf der linken 
seite.

Habe mit einem Bekannten gesprochen der meinte er hätte alle offenen 
Pins am Display auf Masse gelegt...dann hätte es bei ihm funkt.

Vieleicht ist Pollin eine Sonderbauform?
mein Netzteil zeigt einen verbrauch von 0,07A A an...

von Winne Z. (rugbywinne)


Lesenswert?

Was sagt das Datenblatt ?

von spess53 (Gast)


Lesenswert?

Hi

>Ich glaube das Thema "4/8 Bit Pins offen oder gegen Ground bei LCD
>Displays" wurde hier schon mal in einem andern Thread diskutiert.

In einem Thread?

>Habe mit einem Bekannten gesprochen der meinte er hätte alle offenen
>Pins am Display auf Masse gelegt...dann hätte es bei ihm funkt.

Vielleicht wusste er es auch nicht besser. Frage ihn mal nach der 
Begründung.

MfG Spess

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hi,

Hans   W. schrieb:
> 5 Restlichen Verbliebenen Anschlüsse im
wieso 5 Anschlüsse?

Hans   W. schrieb:
> Anschlüsse Controller:
> Port b.4=Db4
> Port b.5=Db5
> Port b.6=Db6
> Port b.7=Db7
> Port b.0= E
> Port b.1= RS

Wo ist hier RW/quer angeschlossen?

spess53 schrieb:
> RW muss natürlich auf L gelegt werden.
Wenn nicht Busyflag abgefragt werden soll.

Das Pinout kontrollieren. Hab auch so ein Display.
94-120 420 LCD TC1602E-01, 16x2, gelb/grün,
Hat links 14 Lötstellen. Die muss man richtig zuordnen.
1 ist Plus 5 Volt, die 15 und 16-Pinne sind auf der rechten Seite für 
Beleuchtung der 15-er ist die Plusseite (Anode) der 
LED-Hintergrundbeleuchtung (mit extra Widerstand beschalten!).
https://www.pollin.de/productdownloads/D120420D.PDF
Wie sieht das mit dem Kontrast-Poti aus?


spess53 schrieb:
> Vielleicht wusste er es auch nicht besser. Frage ihn mal nach der
> Begründung.
Hatten wir schon einmal.
OK. Kompromiss: auf der Platine oben sind noch 2,7 kOhm Widerstände 
gegen GND drin. Ziehe sie ab, bin nur zu faul dazu jetzt.
Wenn man alle "offenen" I/O-Ports generell auf GND legen würde, hätte 
man bei High-Pegel, und diese Ausgänge auf Ausgang geschaltet per 
Software, einen Kurzschluss. War mir nicht sicher, deswegen Widerstände 
zur Strombegrenzung, so der Gedanke.
Die sind aber nicht nötig, weil das Display eine Innenbeschaltung hat, 
die die Eingänge absichert. Pullups bzw. so etwas in der Art.
Bei der Busyflag-Abfrage wird ja der Port zum Ausgang, ist da ein Bug 
drin in der Software, kommt es zum Kurzschluss. Also, das ist schlimmer, 
als würde man offen lassen. Wie gesagt, da gibt es noch Unterschiede in 
den Fabrikaten. Offenlassen ist aber der generelle Tenor.

ciao
gustav

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

Hör doch mal mit diesem Busy-Flag auf. Man kann die Displays auch 
komplett im Schreibmodus betreiben. Dann können auch keine 
Datenleitungen mit einem angelegten Pegel ins Gehege und es reichen vier 
Datenleitungen + E und RS.

MfG Spess

von Hans W. (Gast)


Lesenswert?

die Fünf Anschlüsse....

D0-D3 und RW welche sonnst?

morgen kommt die neue Conrad DCF Platine dann ist die Schaltung  wie im 
Orginal.

Dann sehe ich ja ob es Funktioniert....
und danach klemme ich die einzelnen Anchlüsse versuchsweiße mal ab....
dann sehe ich es ja...

mercy für die antworten..!

von Karl B. (gustav)


Lesenswert?

spess53 schrieb:
> Hör doch mal mit diesem Busy-Flag auf.

Hi,
full ack.
Da man aber die Ansteuersoftware nicht unbedingt im Detail kennt,
gehe ich erst einmal auf Nummer Sicher. Es kann durch einen Fehler oder 
Herumgebastel und ersten Programmierversuchen passieren, dass die 
Dateneingänge per Panne doch auf Ausgang konfiguriert wurden.
Bei den vorgeschlagenen Libs. (Fleury etc.) sollte das aber nicht 
passieren. Insofern kein Grund zur Panik.

Mittlerweile hat sich die Meinung, ob die Busyflag-Abfrage etwas bringt, 
schon soweit geändert, dass sogar renommierte Fachbuchautoren davon 
abraten.

OK. Es wurde sogar berichtet, dass das Display bei der Busy-Flag-Abfrage 
hängenbleibt. Und es ist ja auch meistens "Polling", insofern 
Prozessorzeit-Verschwendung, wenn man es so sehen will. Ob jetzt die 
Verarbeitungszeitpausen mit Hilfe von Zeitschleifen erreicht werden, so 
oder so "Zeitverschwendung". Aus den Zeitschleifen rutscht man aber 
automatisch wieder raus. Hat also unter Umständen auch Vorteile 
gegenüber der Busyflag-Abfrage.

Beitrag "Re: HD44780+PIC18F25k22 Rise Time Probleme?"

Hans   W. schrieb:
> morgen kommt die neue Conrad DCF Platine dann ist die Schaltung  wie im
> Orginal.

Dann noch etwas dazu: Die Fragen kommen bestimmt.
So habe ich das Ding angeschlossen. Der Pullup-Widerstand sollte schon 
rein.

Beitrag "Re: Frage zur Betriebsspannung eines DCF Empänger"


ciao
gustav

: Bearbeitet durch User
von Hans W. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo mein Problem hat sich mit der Ankunft meines NEUEN Conrad DCF 
Moduls
Erledigt.

Mein DCF Signal war sofort nach anlegen eines PULL UP widerstands da und 
die
Uhr Funktioniert SUPER!!!

in der Ruhe liegt die Kraft die Gutes Schaft!..

von Hans W. (Gast)


Lesenswert?

Ein Problem habe ich noch..
I2C ist für einen Anfänger noch zu Schwer? oder soll ich erstmal klein 
weitermachen?

von Karl B. (gustav)


Lesenswert?

Hans   W. schrieb:
> I2C ist für einen Anfänger noch zu Schwer? oder soll ich erstmal klein
> weitermachen?

Hi,
da gibt es einen ausführlichen Thread:

Beitrag "Re: Anfänger Will ATtiny2313 mit Display uber I2C verbinden"

Die Fragestellung war, ob man mit der USI-Schnittstelle klar kommt.
OK. Das ist kein echtes IQuadratC. Für den allerersten Test eines
Displays mit dem PCF8574 geht das noch gerade so durch.

Da sind die "Adressen" noch ein Stolperstein.
Der A braucht $38
Die Ladewerte sind dann:
PCF8574->0x40; PCF8574A->0x70

Die Links zu den ausführlichen Libs. sind auch in dem Thread.

ciao
gustav

: Bearbeitet durch User
von Hans W. (Gast)


Lesenswert?

Hallo Gustav,

Entschuldige, ich habe vergessen zu erwähnen das es sich bei meiner 
Frage.
nicht um ein Display sondern um den I2C bus Direkt Handelt.

Mein Exp. Starter Kasten ist von Franzis Microkontroller 
Programmieren...
mit einem Attiny85 (b.kainka)

dort wird kein I2C Bus Behandelt.
Ich habe einige kleine Controller die mir ein Bekannter schenkte.
4 Atinnys 4313.. inkl. einiger Sensoren...er meinte ich solle da mal 
Probieren eine einfache Wetter Station daraus zu Bauen da hätte ich was 
zum Lernen.
Da wäre dann auch ein I2C Busleitung(System) Möglich...meinte er.?

Habe als Feuchte Sensor einen HR202L und einen Kombi Sensor mit i2c 
anschlüssen (HP03S) wie er sagte wären diese mal bei Pollin zuhaben 
gewesen.

Ich weiß das ein Master  controller der den Takt vorgibt und die Abfrage 
macht/empfängt, ein 3 Adriges Bus System SDA,SCL, GND müssen vorhanden 
sein

Slave Controller verarbeitet die Sensor Werte, arbeiten sie auf und 
schicken
dann das ganze zum master  (wenn sie dazu aufgefordert werden) der die 
Werte dann auf einer Anzeige Sichtbar macht.

Soweit so gut Gibt es Bücher für Anfänger ,Verständliche?
Bascom wäre als Demo Vorhanden.

Danke für die Antworten.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

mit dem Tiny4313 kann man I2C-Geräte ansteuern. Nur müßte man die 
Fehlerbehandlung in Software machen oder ganz darauf verzichten. Direkte 
Statusmeldungen kann man nicht abfragen wie bei den ATmegas.
Ein DSO hilft bei der Fehlersuche sehr, falls es denn gar nicht 
funktionieren möchte. Lernen kannst Du dabei immer etwas, denn zu I2C 
gibt es viel zu lesen.

MfG

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hans   W. schrieb:
> Ich habe einige kleine Controller die mir ein Bekannter schenkte.
> 4 Atinnys 4313

Hi,
die haben die USI-Schnittstelle.
Damit könnte man experimentieren.
Das HR202L Modul kenne ich leider nicht. Kann also nichts Konkretes zur 
Ansteuerung sagen.
Das Prog. ist kommentiert. So kann man erst einmal schauen, wie es vom 
Prinzip her abläuft.
Dabei machen gelegentlich die (Start)Adressen Probleme.
Einige sind nämlich im 7-Bit-Format.
Da muss man das R/W-Bit (erst einmal Null) auf dem LSB reinschieben.
Dann hat man ein prozessorkonformes 8-Bit-Format. Allerdings wenn die 
Sache nach links verschoben wurde, kommt das einer Multiplikation mit 2 
gleich.
Dann muss man für die im Dabla angegebenen Adressen im Prog. eingeben 
statt
$38 -> $70.
Könnte mir vorstellen, dass Dir das schon einmal weiterhilft.
Will man aber mehrere Messstellen abfragen, dann besser mit den Megas 
arbeiten oder den Atmel MCUs, die von vorn herein eine echte TWI 
Schnittstelle aufweisen.
(USI ist eigentlich nur ein Notbehelf.)


ciao
gustav

von Hans W. (Gast)


Lesenswert?

hi Gustav,

die Megas sind in einem Paket das noch kommt (40Räuber)
so lange täte ich gerne was machen wollen.

Das der Attiny Anschlüsse für den I2C hat  habe ich im Datenblatt 
gelesen.
kennst du Bücher die man einem Greehorn empfehlen könnte?

von Fred R. (fredylich)


Lesenswert?

Hans   W. schrieb:
> Ein Problem habe ich noch..
> I2C ist für einen Anfänger noch zu Schwer? oder soll ich erstmal klein
> weitermachen?

Alle Bussysteme sind mit Software sehr einfach zu bedienen. Nur die 
Hardware ist sehr speziefisch.

Ich sehe hier das typische Anfängerproblem.
Mit den kleinen Atinnys musst du in der Programmierung schon Kompromisse 
machen. Somit ist ein Atmega erst mal besser für dein Projekt Ein (8der) 
reicht erst mal. Wenn du dich aber selber ein kleines Testboard mit 
Sockel baust oder ein „Brett“ nutzt, dann ist natürlich ein ATMega16 
günstiger da dann auch die bis AT128 Pin kompatibel sind.
Sehr wichtig ist die Programmiersprache. Ich kann nur empfehlen nicht 
gleich mehrere zu probieren/vermischen.

Solltest du dich erst mal für AVR- Bascom oder ASM entscheiden kann ich 
mit Soft- Hardware helfen.

Da du nur Forumgast bist kann ich dir leider nicht eine PN schicken um 
weiter zu helfen.
Beende mein Hobby.
Gruß

von Hans W. (Gast)


Lesenswert?

Ja da stolpere ich zur Zeit noch rum.
habe mit meinem microkontroller Lehrgang und Bascom gute erfahrungen 
gemacht.
Habe eben wie man sagt die Büchse der Pandora geöffnet.
war am Überlegen ob ich mir die Audrino IDE runter lade.
da gibt es zwar jede menge (FERTIGER!) Treiber etc,....

habe auch einen Sensor endeckt der mit im Kasten lag.
ein BME 280 für Temp,Druck ,Feuchte.
da Stoße ich bei meinem Attiny 2313/4313 mit ihren 4Kb ziehmlich schnell
an deren Grenze.

Was aber im gegensatz zu einem Atmel328 das ganze vereinfacht.
es  gibt da fertige Libs (sagt man?) einfach nur wie Tfertige 
Textbausteine
in einem Serienbrief.

ist nicht meine Sache ich will lieber wissen wie man Programmiert
als feriges Zeugs (im Notfall ja).

Leds ein und ausschalten..ist auf dauer ein bissel wenig...
da wird man dann schnell ungeduldig..wenns länger dauert.

Also Bascom und Maschinensprache.
Danke für die antworten.

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.