Sida 2 av 3

Re: Arduino kod för lcd

Postat: 8 oktober 2013, 21:25:41
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 )-- */

Re: Arduino kod för lcd

Postat: 8 oktober 2013, 21:31:38
av tecno
Vart tog videon vägen som visar resultatet? Kul att det löste sig.

Re: Arduino kod för lcd

Postat: 8 oktober 2013, 22:47:04
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

Re: Arduino kod för lcd

Postat: 9 oktober 2013, 00:38:30
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.

Re: Arduino kod för lcd

Postat: 9 oktober 2013, 05:36:16
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.

Re: Arduino kod för lcd

Postat: 10 oktober 2013, 16:32:51
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.

Re: Arduino kod för lcd

Postat: 10 oktober 2013, 19:49:32
av Chaf
Hej
Provar koden fungerar nästan bara det att Stockholm försvinner.
Chaf

Re: Arduino kod för lcd

Postat: 10 oktober 2013, 22:41:25
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...

Re: Arduino kod för lcd

Postat: 11 oktober 2013, 09:13:13
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.

Re: Arduino kod för lcd

Postat: 11 oktober 2013, 14:40:08
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 )-- */

Re: Arduino kod för lcd

Postat: 11 oktober 2013, 14:45:32
av LaRdA
Jag tror du har videon satt som privat, så den går inte att se.

Re: Arduino kod för lcd

Postat: 11 oktober 2013, 14:55:02
av Chaf
Du hade rätt försökt ändrat hoppas det gick.
Chaf

Re: Arduino kod för lcd

Postat: 11 oktober 2013, 16:19:43
av tecno
Se där ja, det funkar ju fint det där :tumupp:

Re: Arduino kod för lcd

Postat: 11 oktober 2013, 22:14:07
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

Re: Arduino kod för lcd

Postat: 11 oktober 2013, 22:57:27
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