Arduino kod för lcd

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Hej
Fungerar :happy: :tumupp:
Chaf


Kod: Markera allt

    /*-----( Import needed libraries )-----*/
    #include <Wire.h> // Comes with Arduino IDE
     
    #include <LiquidCrystal_I2C.h>
     
    /*-----( Declare Constants )-----*/
    /*-----( Declare objects )-----*/
    // set the LCD address to 0x27 for a 20 chars 4 line display
    // Set the pins on the I2C chip used for LCD connections:
    // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
     
     
    /*-----( Declare Variables )-----*/
     
     
    void setup() /*----( LOOP: RUNS CONSTANTLY )----*/
    {
    Serial.begin(9600); // Used to type in characters
     
    lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines, turn on backlight
     
    // ------- Quick 3 blinks of backlight -------------
    for(int i = 0; i< 3; i++)
    {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
    }
    lcd.backlight(); // finish with backlight on
     
     
    }/*--(end setup )---*/
     
     
    void loop(){/*----( LOOP: RUNS CONSTANTLY )----*/
    lcd.clear();
    lcd.setCursor(2,0); //Start at character 4 on line 0
    lcd.print("Christer Farman");
    delay(1000);
    lcd.setCursor(3,1);
    lcd.print("Bohusgatan 19");
    delay(1000);
    lcd.setCursor(2,2);
    lcd.print("116 67 Stockholm");
    lcd.setCursor(1,3);
    delay(1000);
    lcd.print("Email chaf@live.se");
    delay(3000);
    // Wait and then tell user they can start the Serial Monitor and type in characters to
    // Display. (Set Serial Monitor option to "No Line Ending")
    lcd.clear();
    lcd.setCursor(2,0); //Start at character 0 on line 0
    lcd.print("Telnr 0707768816");
    lcd.setCursor(0,1);
    lcd.print("Stockholm makerspace");
    lcd.setCursor(1,2);
    lcd.print("Elektronikforumet");
    lcd.setCursor(1,3);
    lcd.print("Fungerar bra kul! ");
    delay(2000);
     
   
     
    }/* --(end main loop )-- */
Användarvisningsbild
tecno
Inlägg: 27244
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Arduino kod för lcd

Inlägg av tecno »

Vart tog videon vägen som visar resultatet? Kul att det löste sig.
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Äventyret fortsätter nästa grej är att få
en rad att blinka då blir det än video.Tror att man skriver
lcd.blinkar(); men var ?
Chaf
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Arduino kod för lcd

Inlägg av jesse »

Det är ju nästan omöjligt att ge ett hjälpande svar om diagnosen bara är :

"fungerar inte"..

om man inte talar om VAD som inte fungerar.

T.ex. :

* fungerar det ens att kompilera koden?
* fungerar programmet, men gör inte precis som du vill?
* vad gör det i så fall
* osv...

Eftersom { saknades efter void loop() så misstänker jag att det inte ens gick att kompilera. Men det framgick ju aldrig, bara att "jag vill att texten ska visas om och om igen".... Det säger liksom inget om själva problemet. Nu löstes det visst av sig självt på nåt magiskt vis, utan att vi fick veta varför... Men det kan ju vara bra tips inför nästa tråd.
Premix
Inlägg: 142
Blev medlem: 15 april 2004, 21:58:05
Ort: Trollhättan

Re: Arduino kod för lcd

Inlägg av Premix »

Tjena.
Bra att det går framåt.
Tyvärr kan jag inte lcd biblioteket du använder men det kan ju finnas lcd.blinka eller liknande (troligen på engelska ;) )
Annars så skriver lcd.setcursor(vad du vill) skriver ut som vanligt, tar en paus.
Sedan upprepar du lcd.setcursor(samma som förut) skriver ut en tom rad med lika många tecken som tidigare, tar en paus.
Sen skriver du igen osv.
Men kolla om det finns lcd.clear men bara för en rad, borde finnas. Ser snyggare ut än att skriva ut x antal tomma tecken.
Veqtor
Inlägg: 5
Blev medlem: 22 augusti 2006, 14:21:47
Ort: Stockholm
Kontakt:

Re: Arduino kod för lcd

Inlägg av Veqtor »

Fulkod... men nu blinkar det som du ville... obs ej testat men koda i mörkret är alltid bra grejjer!

Kod: Markera allt

    /*-----( Import needed libraries )-----*/
    #include <Wire.h> // Comes with Arduino IDE
     
    #include <LiquidCrystal_I2C.h>
     
    /*-----( Declare Constants )-----*/
    /*-----( Declare objects )-----*/
    // set the LCD address to 0x27 for a 20 chars 4 line display
    // Set the pins on the I2C chip used for LCD connections:
    // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
     
     
    /*-----( Declare Variables )-----*/
     
     
    void setup() /*----( LOOP: RUNS CONSTANTLY )----*/
    {
    Serial.begin(9600); // Used to type in characters
     
    lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines, turn on backlight
     
    // ------- Quick 3 blinks of backlight -------------
    for(int i = 0; i< 3; i++)
    {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
    }
    lcd.backlight(); // finish with backlight on
     
     
    }/*--(end setup )---*/
     
     
    void loop(){/*----( LOOP: RUNS CONSTANTLY )----*/
    lcd.clear();
    lcd.setCursor(2,0); //Start at character 4 on line 0
    lcd.print("Christer Farman");
    delay(1000);
    lcd.setCursor(3,1);
    lcd.print("Bohusgatan 19");
    delay(1000);
    lcd.setCursor(2,2);
    lcd.print("116 67 Stockholm");
    lcd.setCursor(1,3);
    delay(1000);
    lcd.print("Email chaf@live.se");
    delay(3000);
    // Wait and then tell user they can start the Serial Monitor and type in characters to
    // Display. (Set Serial Monitor option to "No Line Ending")
    int blinkantal = 8;
      lcd.clear();
      lcd.setCursor(2,0); //Start at character 0 on line 0
      lcd.print("Telnr 0707768816");
      lcd.setCursor(0,1);
      lcd.print("Stockholm makerspace");
      lcd.setCursor(1,3);
      lcd.print("Fungerar bra kul! ");
    for(int i = 0; i<blinkantal; i++)
    {
      lcd.setCursor(1,2);
      if((i&1) == 0)
      {
          lcd.print("Elektronikforumet");
       }
      else
      {
         lcd.print("                           ");
       }
      delay(2000 / blinkantal);
    }
    }/* --(end main loop )-- */
//Göran på makerspace... byt ut blinkantal mot antalet blinkningar du vill ha ggr 2.

edit: kanske optimalare kod.
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Hej
Provar koden fungerar nästan bara det att Stockholm försvinner.
Chaf
sodjan
EF Sponsor
Inlägg: 43243
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino kod för lcd

Inlägg av sodjan »

> Hej
> Fungerar
> Chaf

Det är *förbannat* dålig stil att inte tala om vad som hände
mellan "fungerar inte" och "fungerar" !

Du får nog kamma till dig och mogna lite i din kommunikation...
Premix
Inlägg: 142
Blev medlem: 15 april 2004, 21:58:05
Ort: Trollhättan

Re: Arduino kod för lcd

Inlägg av Premix »

Ja.. Sodjan har en poäng.

Men, kolla koden som skriver ut lcd.print("Elektronikforumet");
Räkna antalet tecken i "Elektronikforumet", borde bli 17 tecken.
Sedan raden lcd.print(" ");, borde bli 27 tecken (mellanslag/blanksteg).
De tecken som är mer än vad en rad kan innehålla borde fortsätta på nästa rad.


Nu har du ledtrådar nog för att fixa koden själv.
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Hej :D
Premix
Nu fungear det.
Sodjan
Ursäkta mej att jag är dålig på att förklara
M.v.h
Chaf
Film

Här är koden som används

Kod: Markera allt

/*-----( Import needed libraries )-----*/
    #include <Wire.h> // Comes with Arduino IDE
     
    #include <LiquidCrystal_I2C.h>
     
    /*-----( Declare Constants )-----*/
    /*-----( Declare objects )-----*/
    // set the LCD address to 0x27 for a 20 chars 4 line display
    // Set the pins on the I2C chip used for LCD connections:
    // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
     
     
    /*-----( Declare Variables )-----*/
     
     
    void setup() /*----( LOOP: RUNS CONSTANTLY )----*/
    {
    Serial.begin(9600); // Used to type in characters
     
    lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines, turn on backlight
     
    // ------- Quick 3 blinks of backlight -------------
    for(int i = 0; i< 3; i++)
    {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
    }
    lcd.backlight(); // finish with backlight on
     
     
    }/*--(end setup )---*/
     
     
    void loop(){/*----( LOOP: RUNS CONSTANTLY )----*/
    lcd.clear();
    lcd.setCursor(2,0); //Start at character 4 on line 0
    lcd.print("Christer Farman");
    delay(1000);
    lcd.setCursor(3,1);
    lcd.print("Bohusgatan 19");
    delay(1000);
    lcd.setCursor(2,2);
    lcd.print("116 67 Stockholm");
    lcd.setCursor(1,3);
    delay(1000);
    lcd.print("Email chaf@live.se");
    delay(3000);
    // Wait and then tell user they can start the Serial Monitor and type in characters to
    // Display. (Set Serial Monitor option to "No Line Ending")
    int blinkantal = 8;
      lcd.clear();
      lcd.setCursor(2,0); //Start at character 0 on line 0
      lcd.print("Telnr 0707768816");
      delay(1000);
      lcd.setCursor(0,1);
      lcd.print("Stockholm makerspace");
      delay(1000);
      lcd.setCursor(1,3);
      lcd.print("Fungerar bra kul! ");
      delay(1000);
    for(int i = 0; i<blinkantal; i++)
    {
      lcd.setCursor(1,2);
      if((i&1) == 0)
      {
      lcd.print("Elektronikforumet");
       }
      else
      {
       lcd.print("                   ");
      }
      delay(2000 / blinkantal);
    }
    }/* --(end main loop )-- */
Användarvisningsbild
LaRdA
EF Sponsor
Inlägg: 3766
Blev medlem: 9 september 2003, 14:10:46
Ort: Jämtland

Re: Arduino kod för lcd

Inlägg av LaRdA »

Jag tror du har videon satt som privat, så den går inte att se.
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Du hade rätt försökt ändrat hoppas det gick.
Chaf
Användarvisningsbild
tecno
Inlägg: 27244
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Arduino kod för lcd

Inlägg av tecno »

Se där ja, det funkar ju fint det där :tumupp:
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Hej :D
En ny fråga har en display 40*4 HD44780
kan man använda den ?
Man ska väll ändra koden någon stans ?
M.v.h
Chaf
Användarvisningsbild
ensten
EF Sponsor
Inlägg: 3759
Blev medlem: 19 oktober 2004, 15:55:20
Ort: Hudiksvall

Re: Arduino kod för lcd

Inlägg av ensten »

lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines, turn on backlight
Till att börja med ändra till (40,4).
Sedan har jag inte orkat gå igenom koden för att se om det är ytterligare kod som begränsar till 20 tkn/rad
Skriv svar