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

Arduino kod för lcd

Inlägg av Chaf »

Hej :D
Håller på att pilar med en kod vill att den
ska börja om.Vill också att en rad blinkar
vet ej hur man skriver hoppas på hjälp.
M.v.h
Chaf

Koden som jag leker med

Kod: Markera allt

/* YourDuino.com Example Software Sketch
 20 character 4 line I2C Display
 Backpack Interface labelled "YwRobot Arduino LCM1602 IIC V1"
 terry@yourduino.com */

/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE
// Get the LCD I2C Library here: 
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#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()   /*----( SETUP: RUNS ONCE )----*/
{
  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  

//-------- Write characters on the display ------------------
  // NOTE: Cursor Position: Lines and Characters start at 0  
  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.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!  "); 


}/*--(end setup )---*/


void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  {
    // when characters arrive over the serial port...
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      delay(100);
      // clear the screen
      lcd.clear();
      // read all the available characters
      while (Serial.available() > 0) {
        // display each character to the LCD
        lcd.write(Serial.read());
      }
    }
  }

}/* --(end main loop )-- */


/* ( THE END ) */
Senast redigerad av Walle 8 oktober 2013, 19:25:36, redigerad totalt 1 gång.
Anledning: Fixade code-taggar.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4743
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Arduino kod för lcd

Inlägg av Swech »

Det är bara att ducka innan vargarna kommer och påpekar
att du skall använda code taggarna :D

Swech
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å är det bra om vet vad code taggarna gör eller ?
M.v.h
Chaf
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 »

Resultatet med code blir följande:

Kod: Markera allt

/* YourDuino.com Example Software Sketch
20 character 4 line I2C Display
Backpack Interface labelled "YwRobot Arduino LCM1602 IIC V1"
terry@yourduino.com */

/*-----( Import needed libraries )-----*/
#include <Wire.h> // Comes with Arduino IDE
// Get the LCD I2C Library here: 
// https://bitbucket.org/fmalpartida/new-l ... /downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#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() /*----( SETUP: RUNS ONCE )----*/
{
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 

//-------- Write characters on the display ------------------
// NOTE: Cursor Position: Lines and Characters start at 0 
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.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! "); 


}/*--(end setup )---*/


void loop() /*----( LOOP: RUNS CONSTANTLY )----*/
{
{
// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());
}
}
}

}/* --(end main loop )-- */


/* ( THE END ) */
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
Det vet jag , men jag vill att det ska börja om.
Man måste ju lägga till kod så att det gör det.
M.v.h
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 »

Vad händer?
Vad är det du vill ska börja om?
Vad är det den inte gör som du vill den ska göra?

Som programmet är uppbyggt nu så är det uppdelat i två delar:

(1) setup - som bara körs en gång, och ska bara köras en gång. Vill du att det ska köras igen så ska den koden INTE ligga i setup, utan i loop.
/*----( SETUP: RUNS ONCE )----*/

(2) loop - körs hela tiden - det är här du kan lägga in kod som du vill ska kunna köras hela tiden, eller om och om igen med ett visst tidsintervall.
/*----( LOOP: RUNS CONSTANTLY )----*/

Använder du den koden som finns i loop att ta emot tecken från serieporten? Om inte , så radera allt som finns i loop och lägg din text där istället (dvs. allt från //-------- Write characters on the display ------------------ och framåt, ända till lcd.print("Fungerar bra kul! "); , och lägg till lämplig fördröjning i slutet (så att det tar någon sekund innan den börjar om), t.ex. delay(3000);
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
Förstår inte helt har försökt
Jag vill att texten ska börja om ock om igen osv
M.v.h
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.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.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 )-- */


/* ( THE END ) */
Senast redigerad av Walle 8 oktober 2013, 19:24:47, redigerad totalt 1 gång.
Anledning: Fixade code-taggar.
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 »

Om jag förstår rätt. Du vill skriva ut två omgångar med text om och om igen.
Koden du har borde funka om du slänger in lcd.clear mellan gångerna.
Först direkt efter void loop och sedan efter delay(3000).
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Efter void loop lcd.clear är det så du menar ?
Chaf
Skogen
Inlägg: 972
Blev medlem: 5 januari 2013, 22:50:34
Ort: Alingsås

Re: Arduino kod för lcd

Inlägg av Skogen »

Hade en display uppkopplad mot en Arduino Uno och la in koden med lcd.clear som Premix skrev och det funkar som jag tror du menar.
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
Får det inte att fungera vet inte vad jag ska göra ?
Det måste ju gå på något viss för eller senare.
Chaf
Skogen
Inlägg: 972
Blev medlem: 5 januari 2013, 22:50:34
Ort: Alingsås

Re: Arduino kod för lcd

Inlägg av Skogen »

Vad händer?
Eller händer ingenting?
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Walle »

Chaf, snälla, kan du inte använda code-taggarna när du postar kod? Kodens lärbarhet ökar markant! :)

Här under har jag lagt in lcd.clear på de rader jag tror ska vara korrekt. Koden har jag markerat som C, eftersom arduino-syntax är väldigt lik vanlig C-syntax. Det gör man genom att markera texten som ska code-markeras och sedan trycka ner rull-listan "Syntaxmarkera kod" och klicka på "C". Eller så kan man trycka där först och sedan klistra in koden mellan code-taggarna.

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 )-- */
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Arduino kod för lcd

Inlägg av Chaf »

Stannar på första lcd.clear.
Chaf
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 »

Kan du inte verifiera koden (tror kompilering kallas så Arduino)?
När jag snabbkollar så saknas "{" efter void loop() men det finns ett gäng för många "}" i slutet före end main loop.

Kan vara ett fel i visningen av kod här på forumet och kanske inte speglar den riktiga koden.
Men kolla på det om koden inte verifieras.
Skriv svar