aureliu67 Postat Iulie 4, 2018 Partajează Postat Iulie 4, 2018 Am intalnit o problema cu afisarea datelor pe ecran prin intermediu I2C. Am conectat firele I2C la A4 si A5 insa apar doar patratele negre si nu afisaza nimic. Atasez si softul , care monitorizeaza tansiunea bateriilor normale de masina. Min 11.8v (oprit) - peste 13v pornit pana scade la 11.8v din nou. voltmetru_edit_3.ino Link spre comentariu
Elison Postat Iulie 4, 2018 Partajează Postat Iulie 4, 2018 Pentru display cu conexiune de tip I2C trebuie sa folosesti alta librarie, cea folosita de tine este pentru un display normal cu comanda pe portul paralel si foloseste sase pini. In cazul tau se folosesc doar doi pini pentru comanda.Aici gasesti ce si cum se face. Link spre comentariu
modoran Postat Iulie 4, 2018 Partajează Postat Iulie 4, 2018 Trebuie sa folosesti LiquidCrystal_I2C. Uite un exemplu de cod functional de la mine, va trebui sa-l modifici putin inainte sa-l compilezi: #include <Wire.h> #include <LiquidCrystal_I2C.h> #define BACKLIGHT_PIN 13 #include <enc28j60.h> #include <EtherCard.h> #include <net.h> // Demo using DHCP and DNS to perform a web client request. // 2011-06-08 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php #include <EtherCard.h> // ethernet interface mac address, must be unique on the LAN static byte mymac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 }; static byte myip[] = { 192, 168, 1, 200 }; // static ip address byte Ethernet::buffer[500]; static BufferFiller bfill; static uint32_t timer; //const char website[] PROGMEM = "modoran.zapto.org"; // called when the client request is complete /*static void my_callback (byte status, word off, word len) { //Serial.println("\n\nWebsite response:"); Ethernet::buffer[off + 300] = 0; BufferFiller bfill; Serial.print((const char*) Ethernet::buffer + off); //Serial.println("..."); //}*/ LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7); // 0x27 is the I2C bus address for an unmodified backpack void setup() { // activate LCD module lcd.begin(16, 2); // for 16 x 2 LCD module lcd.setBacklightPin(3, POSITIVE); lcd.setBacklight(HIGH); lcd.home(); lcd.print("Arduino ENC28J60"); Serial.begin(57600); //Serial.println(F("\n[webClient]")); if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) Serial.println(F("Failed to access Ethernet controller")); if (!ether.dhcpSetup()) Serial.println(F("DHCP failed")); /*if (!ether.dnsLookup(website)) Serial.println("DNS failed");*/ /*ether.printIp("IP: ", ether.myip); ether.printIp("GW: ", ether.gwip); ether.printIp("DNS: ", ether.dnsip); #if 1 // use DNS to resolve the website's IP address if (!ether.dnsLookup(website)) Serial.println("DNS failed"); #elif 2 // if website is a string containing an IP address instead of a domain name, // then use it directly. Note: the string can not be in PROGMEM. char websiteIP[] = "192.168.0.1"; ether.parseIp(ether.hisip, websiteIP); #else // or provide a numeric IP address instead of a string byte hisip[] = { 192,168,0,1 }; ether.copyIp(ether.hisip, hisip); #endif ether.printIp("SRV: ", ether.hisip); Serial.println ("Setup complete");*/ lcd.setCursor(2, 1); lcd.print(ether.myip[0]); lcd.print("."); lcd.print(ether.myip[1]); lcd.print("."); lcd.print(ether.myip[2]); lcd.print("."); lcd.print(ether.myip[3]); /*delay(5000); lcd.clear();*/ } static word homePage() { bfill = ether.tcpOffset(); long t = millis() / 1000; bfill.emit_p(PSTR( "HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nPragma: no-cache\r\n\r\n<meta http-equiv='refresh' content='1'/>" "<title>Arduino enc2j60</title><body><html><u>Arduino Ethernet ENC28J60 webserver </u><BR><B>Temperat </B> <br>" "D3 state: <br> <br> Seconds $L</body></html>"), t); return bfill.position(); } void loop() { word len = ether.packetReceive(); word pos = ether.packetLoop(len); if (pos) ether.httpServerReply(homePage()); // if valid tcp data received send web page /*ether.packetLoop(ether.packetReceive()); if (millis() > timer) { timer = millis() + 5000; Serial.println(); //Serial.print("<<< REQ "); ether.browseUrl(PSTR("/"), "ip.php", website, my_callback); } lcd.home (); // set cursor to 0,0 // ether.printIp(ether.myip()); //lcd.print(ether.myip); lcd.setCursor (0, 1); // go to start of 2nd line lcd.print(millis()); delay(100); lcd.setBacklight( LOW ); // Backlight off delay(250); lcd.setBacklight( HIGH ); // Backlight on delay(1000);*/ } Link spre comentariu
aureliu67 Postat Iulie 4, 2018 Autor Partajează Postat Iulie 4, 2018 Va multumesc mult. Aveam impresia ca librariile sunt instalate dar am uitat ca am instalat win 10 de curand... Ati avut dreptate. Libraria instalata era doar pt LCD normal nu si pt I2C. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum