lcd 16x02 I2C op mega werkt niet

Ik was met een projectje bezig en omdat mijn Uno voor een ander project in gebruik is had ik de Mega er bij gepakt. Daar wilde ik een 16x02 lcd schermpje op aan sluiten via de I2C poorten, de SDA(21) en SCL(22) dus. Maar op de een of andere manier krijg ik het niet werkend, er verschijnen enkel witte blokjes in het scherm en de led brand.

Ik heb de I2C scanner gebruikt, en die zegt: No I2C devices found. Dus het scherm word niet gevonden door de Mega. Het scherm zelf werkt wel, dat heb ik op een Uno uitgetest. De draden heb ik vervangen, ik heb het doorgemeten of vanaf het scherm tot op de soldering van de pin op de arduino er contact is, dat is er. Ik heb meerdere sketches geprobeerd, sketches die op andere Arduino's probleemloos beeld geven, niks werkt.

Is mijn mega/I2C poort kapot, of kan er nog iets anders aan de hand zijn? De Mega is net nieuw en verder nog nergens anders voor gebruikt. De sketches draaien wel gewoon en zijn via de serial monitor uit te lezen.

volgens de doc op http://arduino.cc/en/Main/ArduinoBoardMega2560

TWI: 20 (SDA) and 21 (SCL).

Met vriendelijke groet Jantje

Sorry, dat klopt inderdaad, ik vergistte me even, ze zitten aangesloten op de 20 en 21, de poorten waar SDA en SCL bij staan.

Weerstanden misschien ?

Dat kwam ik ook tegen op internet inderdaad, geprobeerd met verschillende waarde's, nog steeds geen beeld. Buiten dat, op andere Arduino's doen de schermpjes het ook zonder een weerstand.

Ik ben niet de specialist maar ik zie nog volgende dingen die je kan doen. 1) Doormeten of de pinnen wel verbonden zijn met de avr. Dat kan je ook doen door eventueel een ander sketch op te laden die de poorten hoog en laag zet. 2) Met een logic analyzer of een scope de pinnen uitmeten met een sketch die constant I2C signalen stuurt. 3) Testen met een andere mega

Met vriendelijke groet. Jantje

Zo. Sinds maanden ook eens echt met een Arduino aan de gang gegaan. Heb hier al jaren een Mega1280 clone liggen waar ik nog helemaal niets mee gedaan had. Dus maar even een OLED aangesloten en een paar sketches die ik eerder al met een duemilanove getest heb. De OLED moest wel voorzien worden van een weerstand in de 5 volt aansluiting (hierdoor duurt het heel even voordat de voeding stabiliseert, waardoor de OLED genoeg tijd heeft om te initialiseren). Maar dat is een kwestie van een slecht ontwerp van dat OLED boardje, heeft niets met MatthijsB's opstelling te maken. Alle sketches die ik heb geprobeerd, werken correct.

Ook Nick Gammon's I2C scanner (klik !) werkt goed en vind het schermpje op 0x3C. Wel de seriële monitor even op 115200 zetten, anders krijg je onzin te zien. Hoeveel je aan mijn test hebt weet ik niet, omdat het om andere hardware met andere hardware gaat. Maar ik hoefde dus verder niets te doen dan dat wat ik al kende, I2C werkt normaal hier.

Als ik weer eens een keer wat tijd te verdoen heb (duurt nog wel een paar weken eer ik daarmee aan de gang kan, ga ik weer eens wat spelen met deze combinatie Mega1280/OLED. Ff logootje creëren en zo.

Dankjewel Jantje!

Ik heb even de blink sketch geüpload naar de Mega. Als ik die poort 20 aan laat sturen dan werkt het gewoon. Laat ik die poort 21 aansturen, dan blijft de led zwak branden, net alsof die niet aangestuurd word. Ook als ik het kabeltje onderaan tegen de soldering houd, blijft de pin zwak branden. Dus de pin 21 word niet aangestuurd.

Kan ik hiermee concluderen dat de Mega niet goed is?

Die conclusie kun je inderdaad trekken.
Het is natuurlijk mogelijk dat er iets anders dan de controller chip defect is, want dat ding is niet zo gemakkelijk te vervangen (een nieuwe bestellen zal wel een stuk goedkoper zijn, maar je kan het ook als goede soldeer oefening benaderen).
Als je dat zeker wil weten moet je dus de print heel goed gaan controleren / doormeten.
De I2C pinnen zitten er nog een keer op als je de R3 versie hebt.
Helemaal aan de andere kant van die rij, naast de ICSP connector voor de serieel omzetter zitten ze nog een keer.
Op de onderzijde van je print zie je daar beschreven welke pin wat doet, omdat dat door die ICSP connector niet op de bovenzijde past.

Daarmee is nog steeds niet alles verloren als het dan nog niet werkt.
Er is namelijk ook nog soft I2C, waarbij je de te gebruiken pinnen zelf kunt definiëren.
Ik weet niet of hier nog nadelen aan zijn.
Je bent dan wel pin 21 nog steeds kwijt.

Dankjewel Mas3.

Ik meende al dat ik eerder ergens gelezen had dat de Mega nog een I2C aansluiting moest hebben. Ik heb niet een originele Arduino Mega, en er staat onderop ook niks bij de 2 pinnen. Ik heb het op internet opgezocht welke wat zou moeten zijn en een schermpje aangesloten. Nog steeds heb ik geen beeld, of moet ik daarvoor iets in de code aanpassen omdat ik "andere" I2C poorten gebruik?

Ik heb het doormeten van de pin 21 geprobeerd, maar dat valt nog niet mee, zal het straks nog eens proberen. Het solderen aan deze print zal denk ik niet lukken, mijn soldeerpunt lijkt me daar iets te grof voor, buiten dat, de Mega is net nieuw dus ik hoop dat ik een ander bordje kan krijgen.

MatthijsB: ... de Mega is net nieuw dus ik hoop dat ik een ander bordje kan krijgen.

Ik zou daarvoor gaan. Ik koop ten andere altijd van alles minstens 2 (alle als het niet te duur is he). Dan kan je makkelijk controleren of er iets mis is door de component te verwisselen. Kost wat meer maar spaart een hoop ellende als er iets mis is.

Met vriendelijke groet Jantje

Je hebt op de mega ook een tweede aansluiting voor I2C. Na 13 - GND - AREF - SDA - SCL Op de originele echte arduino borden staat het er in hele kleine lettertjes op op de achterkant.

Als die poort ook niet werkt, moet je het bordje zeker terugbrengen. Maar let op, meet misschien ook nog eens het schermpje uit. Just in case. Je weet maar nooit. Als er iets is stukgegaan, doe je misschien je nieuwe arduino ook meteen stuk..

Als je je afvraagt welke weerstanden je moet gebruiken bij I2C is er geen echt duidelijk antwoord. Meest gebruikelijke is 4K7. Als je er eens op googled zie je enorm fanatieke discussies waarom wel en waarom niet.

Vaak hoor je dat het 4K7 is gewoon omdat dat vroeger een courante waarde was, maar daar geloof ik dan weer niet helemaal in.

Hopelijk krijg je een nieuw bordje en loopt alles vlot!

Heel even voor de duidelijkheid: Die 2 extra pinnen, zijn pinnen die zijn toegevoegd aan het originele ontwerp. Jullie noemden dat een extra poort, maar dat is niet juist. Het is dezelfde poort, die op 2 punten kan worden aangesloten. Wanneer de aansluiting of de print defect zou zijn, kun je de andere nog proberen. Maar wanneer de poort (in de chip zelf dus) kapot is, dan werkt die 2e aansluiting net zo slecht.

Heb je al gekeken naar de software oplossing ?

Als het ding nieuw is, zou ik ook proberen 'm onder garantie te laten vervangen.

Hey, Mas3,

zo heb ik idd een probleem met mijn Mega opgelost. De 'extra' pinnen werkten wel dus wist ik dat het niet aan de IC lag... Ik dacht ik geef het maar even mee.

Hartelijk dank allemaal. Ik heb de andere 2 pinnen geprobeerd, en ook die werkten niet. Deze is ergens blijkbaar kapot. De poort 21 werkt op zichzelf niet, en blijkbaar de I2C ook niet, of die zit niet op die poorten bij dit type, maar volgens mij zou dat wel zo moeten zijn, het is een R3. Ik heb contact gehad met de leverancier en die zou me een nieuwe opsturen.