Får inte koden att fungera för I2C
-
- Inlägg: 7810
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Får inte koden att fungera för I2C
Har du testat att följa denna instruktion? Där finns en länk till det bibliotek som används i exemplet. Man nämner även man att man skall ta bort original biblioteket från mappen library och ersätta med den nya.
Poten på kortet är inte backlight utan kontrast. Om den står fel syns ingenting på displayen.
Poten på kortet är inte backlight utan kontrast. Om den står fel syns ingenting på displayen.
Re: Får inte koden att fungera för I2C
På Unon är det A4 och A5, och på "Pro Micro" är det pin 2 och 3.GeekJoan skrev:Skriv vilka ingångar du använder så kan jag testa din kod på en av mina displayer.
Men inget fungerar just nu.
Jag använder det här biblioteket och lagt till det som .ZIP bibliotek.
Re: Får inte koden att fungera för I2C
Hur svårt kan det vara. Jag borde ha fått till det, har ju redan gjort allt som står där.....
Re: Får inte koden att fungera för I2C
Ser man på, hur svårt kan det vara.
Först fick jag till det på unon, tror att det var dålig kontakt på bussen. Men efter att bättrat på anslutningen och än en gång kört IC2 sniffern för att se om om kontakten var god så funkade skiten.
Varför måste det jämnt krångla!!
Sedan kopplade jag in displayen mot Pro Micro, och där hoppade det igång på en gång, fast jag inte gjort nån skillnad sedan innan. Där är iaf anslutningarna lödda, och I2C-sniffern hade spottat ur sig adress 0x27 och ändå funkade det inte, men nu helt plötsligt har grejerna fått feeling.
Edit..... Unon började jag testa nu i morse utifall det felet låg hos Pro Micro.
Först fick jag till det på unon, tror att det var dålig kontakt på bussen. Men efter att bättrat på anslutningen och än en gång kört IC2 sniffern för att se om om kontakten var god så funkade skiten.
Varför måste det jämnt krångla!!
Sedan kopplade jag in displayen mot Pro Micro, och där hoppade det igång på en gång, fast jag inte gjort nån skillnad sedan innan. Där är iaf anslutningarna lödda, och I2C-sniffern hade spottat ur sig adress 0x27 och ändå funkade det inte, men nu helt plötsligt har grejerna fått feeling.
Edit..... Unon började jag testa nu i morse utifall det felet låg hos Pro Micro.
Re: Får inte koden att fungera för I2C
Om det ska kopplas till ytligare en komponent med I2C-buss så är det bara att ansluta dem parallellt med redan befintlig modul??
Och se till att adressen inte är den samma såklart.
Och se till att adressen inte är den samma såklart.
Re: Får inte koden att fungera för I2C
ja, om det är en display till så måste det lilla kortet på baksidan hårdvarukopplas på nästa adress.
Annars är väl risken väldigt liten för adresskrock vad som än ansluts på I2C-bussen.
Annars är väl risken väldigt liten för adresskrock vad som än ansluts på I2C-bussen.
Re: Får inte koden att fungera för I2C
Jag brukar inte behöva ladda ner bibliotek, det mesta finns redan i Arduinos "nya" mjukvara.
https://www.arduino.cc/en/Guide/Libraries#toc3
https://www.arduino.cc/en/Guide/Libraries#toc3
Re: Får inte koden att fungera för I2C
Ok, får se till att ladda ner senaste versionen.
Nu har jag fått tag på en Oled som det syns på bilden. Men jag får inte mer än brus........
Verkar som jag har fel version på displayen mot programmet, ser jag nu.
Min heter msp430, och jag testade en instruktion för ssd1306. Om det nu är nån skillnad??
Ny chans i morgon .....
Nu har jag fått tag på en Oled som det syns på bilden. Men jag får inte mer än brus........
Verkar som jag har fel version på displayen mot programmet, ser jag nu.
Min heter msp430, och jag testade en instruktion för ssd1306. Om det nu är nån skillnad??
Ny chans i morgon .....
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
-
- Inlägg: 7810
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Får inte koden att fungera för I2C
Så här ser min fungerande kod ut för min Oled. Jag vet inte typen men den ser ut som din.
Frånse Dallaskoden.
Jag har för mig att jag fick ändra i filen Adafruit_SSD1306.h till 64.
Jag fick använda adressen 0x3C i stället för 0x78 som stod angivet på min display.
Frånse Dallaskoden.
Jag har för mig att jag fick ändra i filen Adafruit_SSD1306.h till 64.
Jag fick använda adressen 0x3C i stället för 0x78 som stod angivet på min display.
Kod: Markera allt
#include <max6675.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
l
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
void setup() {
// Start up the library
sensors.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0,10);
display.print("Water Out");
.
.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Får inte koden att fungera för I2C
Jag tror nog att det är samma kod som jag har, minus dina egna modifieringar.
Re: Får inte koden att fungera för I2C
Få inte till det, jag beställer en ny och håller tummarna på att det är nått fel på denna jag har.
Den visar en massa brus/skräp oavsett om det finns nått i .ino filen eller inte.
Kan ta bort alla anrop, ändå visar den samma skräp. Förstår som vanligt ingenting.
Den visar en massa brus/skräp oavsett om det finns nått i .ino filen eller inte.
Kan ta bort alla anrop, ändå visar den samma skräp. Förstår som vanligt ingenting.
Re: Får inte koden att fungera för I2C
SeniorLemuren -- har du motståndet kvar vid 0x78?? (se bild)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Får inte koden att fungera för I2C
Vissa displayer anger "adressmasken" istället för själva adressen. En I2C-adress är bara 7 bitar lång så om "masken" är 0x78 så är adressen egentligen 0x3C.
0x78 0b01111000
0x3C 0b00111100
Jag har stött på mjukvaror som också hanterar detta olika. Vissa kallar, i det här exemplet, 0x78 för adressen och maskar in den rakt av i registret. Andra skiftar adressen ett steg åt vänster innan den maskas in i registret, vilket borde vara det korrekta eftersom adressen är 7 bitar lång och det är de 7 högsta bitarna i registret som utgör adressen. Den lägsta biten i byten är R/W-biten och är inte en del av adressen.
0x78 0b01111000
0x3C 0b00111100
Jag har stött på mjukvaror som också hanterar detta olika. Vissa kallar, i det här exemplet, 0x78 för adressen och maskar in den rakt av i registret. Andra skiftar adressen ett steg åt vänster innan den maskas in i registret, vilket borde vara det korrekta eftersom adressen är 7 bitar lång och det är de 7 högsta bitarna i registret som utgör adressen. Den lägsta biten i byten är R/W-biten och är inte en del av adressen.