jo so soll es sein und es ist so oder?
Druckbare Version
jo so soll es sein und es ist so oder?
Aso, ich habe nicht richtig verstanden, was du mit pin 5 und 6 meinst.
Aufjedenfall: die erste pin von links soll SCL sein und die 2. pin von recht SDA. (von mir gesehen)
das wollen wir von dir wissen... =)
Wenn das schon richtig rum ist, weiß ich nicht mehr, woran es liegen könnte, deine platine siehst gut aus...
also der code scheint ja zu stimmen. die verlötung auch. melde dich mal bei conrad.
danke fürs zweite mal löten^^
Ich rufe morgen den technichen kundencenter von connrad an dann müssen sie mir ja helfen können bzw neuen schicken
Muss jetzt leider arbeiten gehen bis dann morgen
alles klar, mach das... kannst ja mal ein bild vom display-connector machen, und auf dem foto dranschreiben was wo angeschlossen ist. das wäre evtl noch hilfreich, vielleicht ist da ja der fehler.
Hier ist nochmal ein anschlussplan, hab alles nochmal gecheckt aber bitte kontrolliert auch nochmal und verbessert mich.
wenn zwei leitungen sich kreuzen, ist dort KEINE verbindung. nur an "T-kreuzungen" ist eine verbindung.
rechts unten an GROUND sind 3 leiungen angeschlossen, die beiden teile der kontrastversorgung und der pin 1.
perfect alles richtig. =)
Öhm ist es eigendlich normal das bei mir kein amper drüber läuft bei out + und -????
edit: ach das ligt ein meinem multimeter irgendwie kann ich kein amper messen ohne ein kurtzen zu erzeugen keine ahnung warum
uff da kommen mehr als 250 mA an wie bekomme ich die wenniger? mein display will nur 700µA und es schwangt zwischen 4.98 und 5,1 volt.
Beim alten asuro war das auch sonen problem da hatte ich allerdings zu viel volt gehabt und es ist nicht gegangen und war fast am verzweifeln. könnte das das problem sein? Habe 4 Accus drin mit je 650mA
Achja was meinst du eigendlich mit programmcode? Ich habe da nur Device geändertZitat:
Zitat von m.a.r.v.i.n
Hi
Wenn du das Multimeter auf Strommessung stellst, und an out+ und out- anschließt, mißt du den Kurzschlußstrom deiner Akkus. Bei Strommessung ist der Innenwiderstand des Messgerätes sehr niedrig.Zitat:
ach das ligt ein meinem multimeter irgendwie kann ich kein amper messen ohne ein kurtzen zu erzeugen keine ahnung warum
Deshalb sollte man den Strom nur in Reihenschaltung zu einem Verbraucher messen.
Gibt deine Schaltung und den Schaltplan jemand anderen zum nachprüfen. Oftmals ist es so, das man zwar selbst alles mehrmals und 100% durchgeprüft hat und den Fehler nicht findet. Wenn dann ein Aussenstehender die Sache nochmal überprüft, findet der den Fehler sofort.
Im Schaltplan von Damaltor fehlen nur die beiden Pullup Widerstände, sonst ist alles in Ordnung.
damit meinte ich den Original Programmcode für die I2C Erweiterung aus der I2Cmaster Lib.Zitat:
Achja was meinst du eigendlich mit programmcode? Ich habe da nur Device geändert
Hallo
thx. wenn ich das mit dem digitalen multimeter mache mache ich entweder nen kurzen oder er zeigt 0,00 an wenn ich es aber mit dem analogen mache zeigt er mir ne Ampere zahl die über 250mA sind da schlägt die nadel voll aus und knallt an. jo ich werde es mit auf die arbeit holen und den elektrieker schauen lassen (haben ja nachtschicht^^).
Jetzt ist halt noch die frage wo kann man das display noch an schlissen um zu überprüfen obs funktioniert???
ein amperemeter darf NIE direkt an plus und minus angeschlossen werden. das ist dann ein klassischer kurzschluss. bei den analogen zeigermessgeräten ist das nicht soooo schlimm, die nadel wird durch eine magnetspule bewegt. das messergebnis was angezeigt wird, ist der strom der über die spule fliesst, hat aber nichts mit der schaltung zu tun. deshalb muss man die angezeigten werte, die man von einem analogen multi bekommt, immer in realwerte umrechnen, weil die spule eben auch strom braucht. deshalb empfehle ich ganz klar digitale multis. diese haben allerdings keine spule, und deshalb einen extrem niedrigen innenwiderstand. also ist das ungefähr so, als wenn du ein stück draht zwischen + und - hältst.
so wird richtig gemessen:
Spannung (in Volt): PARALLEL zum verbraucher
+_______(Messgerät)___________-
.......|...................................|
.......____(Verbraucher)____
Strom (in Ampere): IN REIHE zum verbraucher
+_____(Messgerät)_______(Verbraucher)_____-
du musst also ein kabel der stromversorgung abtrennen, und dann das messgerät DAZWISCHEN halten um den strom zu messen. um beispielsweise den gesamten stromverbrauch des asuro zu messen, könntest du zum beispiel ein kabel des batteriehalters durchtrennen, und dann die testkabel des multimeters mit den beiden enden verbinden.
ah jetzt verstehe ich thx ich glaube wenn ich hier fertig bin bin ich ein ausgelehrter elektriker^^ thx
edit: Ich habe mal etwas gegooglet und habe da vllt was gefunden zwar verwenden die einen at32 aber das ist ja nicht soweit endvernt die meisten berichten das sie irgendwo hängen bleiben und das irgendwas gesperrt wid vlt könnte das ja mal einer lesen bitte wenns geht ich versteh da nur Bahnhof und abfahrt. zuerst noch den link dabei schreiben^^
http://www.avrfreaks.net/index.php?n...&highlight=twi
Edit: Der elektrieker hat drüber geschaut und meinte das soweit alles in ordnung wäre mit den verbindungen allerdings hätte er davon keine ahnung
Was muss ich eigendlich ändern das er nicht mehr die i2cmaster sachen haben will aber das er trotzdem i2c erkennt??? Ich will jetzt einfach nur noch die neue Lib verwenden wo er halt auch das i2c_init(); mit erkennt aber alles andere nicht mehr.Weil meine meinung das er das alles nicht braucht das sind bestimmt alles wiedersprüche in sich selber.Meistens ist das einfachste das richtige es wird ja schon alles kommentiert durch die eingabe bzw was ich eingebe, soll er ja machen, also verstehe ich nicht das ich dann noch ....(alles andere) brauch.
Mit dem TWI, geht nicht wie es in avrfreaks zu sehen ist, weil die verbindungen sind ja von Batterie und Taster verwendet. Deshalb geht es bei asuro so nicht, sondern nur mit i2cmaster von peter fleury.
probiere das hier bitte:
wenn es immer grün wird, dann ist es in ordnung. wenn es immer rot ist, dann ist die addresse falsch, wenn rot-grün funktioniert es überhaupt nichtCode:#include <avr/io.h>
#include "i2cmaster.h"
#include "asuro.h"
int main(void)
{
unsigned char ret;
unsigned char val;
Init(); // init Asuro
i2c_init(); // init I2C interface
val = 0;
StatusLED(RED);
while(1)
{
ret = i2c_start(0x40+I2C_WRITE);
if ( ret )
{
i2c_stop();
StatusLED(GREEN);
Msleep(500);
}
else
{
i2c_write(0x00);
i2c_stop();
StatusLED(RED);
Msleep(500);
}
ret = i2c_start(0x74+I2C_WRITE);
if ( ret )
{
i2c_stop();
StatusLED(RED);
Msleep(500);
}
else
{
i2c_write(0x00);
i2c_stop();
StatusLED(GREEN);
Msleep(500);
}
}
return 0;
}
Hi
Das funktioniert leider auch nicht. Das mit dem TWI ist schade das es nicht funktioniert habe gedacht.
ändere mal in der zeile
ret = i2c_start(0x40+I2C_WRITE);
die zahl 0x40 in 0x74. das ist die adresse deines displays. nochmal kompilieren, und dann testen. auf dem display wird nicht viel zu sehen sein, aber erzähl uns dann mal ob die statusled grün ist.
nein, ich habe es so gemach, dass einmal 0x40 und ein mal 0x74 als device gewählt um zu überprüfen
also die statusLED ist immer grün egal wie rum ich das mache
was meinst du mit "wie rum ich das mache"
Einmal mit deinem text und einmal wie damaltor sagte
wenn du so gemacht hätte, wie dalmator es sagte, soll es eigentlich rot-grun-rot-grün...
mom ich mache nochmal
edit: Nee sie wird grün und bleibt grün
na löl... was passiert wenn du die erweiterungsplatine mit dem dsiplay enfernst, also nichts an den i2c bus angeschlossen ist?
die statusLED ist grün^^
das ist unmöglich! ich hab extra am anfang statusled rot gemacht.
Probiere mal noch mal zu flashen und probiere noch mal
das einzigste mal wo die LED Rot wird ist wenn ich bei der test_i2cmaster.c das
#define Dev8574 0x40 // device address of PCF 8574, see datasheet
lasse dann ist es aber auch rot wenn das display drauf ist und egal was für texte ich schreibe.
wenn ich das aber in
#define EAT 0x74 // device address of PCF 2116_C , see datasheet
ändere bleibt die statusLED grün egal wann und was.
omg ich sehe gerade shit irgendwas ist da oberfaul
ich denke ich installiere mal alles neu und spiele alles neu auf mal schauen was dann passiert
Hi,
Ich verstehe nicht was du da schreibt. In mein code gibt Devxxx nicht, warum kopierst du nicht mein code auf test_i2cmaster.c und kompiliere das.
Hier die hex datei davon:
lol hätte ich das die ganze zeit in test_i2cmaster.c kopierensollen? habe immer in test.c kopiert.. UUUUPPPPSSSSS
edit: meine frau hat glaub blasen sprung (dann kommt mein kind ja bald *freu*)
WOW, ich hoffe dass deiner Frau gut geht, und dem Kind auch.
in mom noch ja sie war nass unten das ist meistens ein zeichen für blasen sprung mal schauen ob sie noch mal nass wird
also wenn ich die hex von dir flashe wird die statusLED grün und sonst eigendlich nichts mehr
ok, wenn du das module raus nimmst und asuro anmachst?
wenn rot --> dein LCD ist ansprechbar und funktioniert
wenn grün --> leider nicht
ok jetzt ist es rot wenn ich es drausen habe. Hatte vorhin es drin gehabt deswegen
Letzte Überprüfung:
Das LED soll rot-grün-rot-grün sein
EDIT:
1. Test war schon richtig --> LED immer grün
2. Test war schon richtig --> LED rot. wenn du als das module wieder anschließen als er rot ist, soll es grün werden.
3. Test "i2ctest2.hex" ---> LED wir rot-grün abwechseln
wenns draussen ist ist es rot
wenns drinn ist grün rot grün rot .....
edit: wenn ich den text eigebe geht das display aus.
Code:#include <avr/io.h>
#include "i2cmaster.h"
#include "asuro.h"
#define Display 0x74 // device address of Display, see datasheet
int main(void)
{
int ret=0;
Init();
i2c_init();
ret = i2c_start(0x74+I2C_WRITE); //hier wird der i2c bus gestartet und die adresse
if ( ret ) //geschrieben
{
i2c_stop(); //sollte das nicht gehn, wird das programm hier eingefangen
StatusLED(RED);
while(1);
}
Msleep(200);
i2c_write(0x00); //controll byte (muss gesendet werden laut datenblatt)
Msleep(200);
i2c_write(0x2C); //die nächsten bitfolgen bzw werte sind aus dem daten-
Msleep(200); //blatt kopiert. sollte eigentlich das display
i2c_write(0x0E); //einschalten und den corsur nach oben
Msleep(200); //links setzen.
i2c_write(0x06); //einzige änderung: da nicht dual power sondern
Msleep(200); //single supply genutzt wird (also nur +5V und gnd und nicht
i2c_start(0x74+I2C_WRITE);
i2c_write(0x40);
Msleep(200);
i2c_write(0x54);
Msleep(200);
i2c_write(0x65);
Msleep(200);
i2c_write(0x73);
Msleep(200);
i2c_write(0x74);
Msleep(200);
while(1);
return 0;
}
Cool, es scheint doch dass dein LCD eigentlich in ordnung ist. Wahrscheinlich war die fehler beim programmieren ;)