I2CLCD geeft geen tekst.

Software die niet past in bovenstaande onderwerpen
Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

I2CLCD geeft geen tekst.

Berichtdoor benvo » 24 Nov 2016, 20:28

Hallo allemaal,

Mijn Arduino Amega 2560 (Chinese kloon) is binnengekomen deze week. Evenals ook een (2004A) LCD 20x4 scherm. Dit is een LCD met een I2C back pack. Om te weten te komen of alles werkt heb ik wat (demo-)programmaatjes gedownload samen met een I2C library.
Op deze Sketches werd het adres voor de LCD 0x27 aangegeven wat fout bleek te zijn. Met een "I2C_HEX_Adress" programma kwam ik erachter dat de LCD op adres 0x3F staat. Omdat deze test dit aangeeft ga ik er vanuit dat er geen storing, ergens, in de bekabeling zit. Toch krijg ik geen enkel karakter te zien op de display. Uiteraard heb ik het contrast uitgeprobeerd. De achtergrondverlichting werkt wel, als een sketch vraagt om deze aan en uit te zetten werkt dit ook. Als gezegd teksten als het obligate "Hello Word" verschijnen niet. Wat kan ik en moet ik nog meer proberen? Wie weet raad?

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: I2CLCD geeft geen tekst.

Berichtdoor nicoverduin » 24 Nov 2016, 20:48

Zet jouw test sketch even hier neer en de link waar je de lib vandaan hebt
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: I2CLCD geeft geen tekst.

Berichtdoor benvo » 24 Nov 2016, 22:02

https://bitbucket.org/fmalpartida/new-l ... /downloads

Hier haalde ik de NewliquidCrystal_1.3.4.zip vandaan.

https://github.com/fdebrabander/Arduino ... 2C-library

en hier koos ik voor LyquidCrystal_I2C cpp

Of dit de goede library's zijn? Eigenlijk weet ik het niet.

Dit is een van de demo's die ik probeerde:
cpp code
/************************************************
* This example code is in the public domain.
* @file LCD_I2C.ino
* @brief Demonstrates use of the LCD Library
* @author Nicolas BOUTIN
* @date 31/05/2013
*
* Board Arduino UNO R3
* IDE Atmel Studio 6.1
* LCD I2C PCM2004E6-2
* Pin Board LCD
* SDA_20 SDA (blanc) + resistance pull-up 2k
* SCL_21 SCL (jaune) + resistance pull-up 2k
* 5V 5V (rouge
* GND GND (noir)
***********************************************/

/************************************************
* INCLUDE
***********************************************/
#include "Arduino.h"
#include "Wire.h"
#include "Printable.h"

#include "lcd_I2C.h"

/**
* The Streaming library must be included in order to use "operator<<"
* It can be find at the following address :
* http://arduiniana.org/libraries/streaming/
* I am not the author of it but it is a must-have
*/
#include "Streaming.h"

/*****************************************************************************
* CLASS Printable
*****************************************************************************/
class PrintableObject : public Printable
{
private:
uint8_t ui8_val;
String my_name;

public:
PrintableObject(uint8_t val, String name)
{
ui8_val = val;
my_name = name;
}

virtual size_t printTo(Print& p) const
{
p << "My name is " << my_name << endl;
p << "Value :" << ui8_val << endl;
}
};

/*****************************************************************************
* Object instantiation
*****************************************************************************/
LCD_I2C lcd(0x3F, 4, 20);

/*****************************************************************************
* Setup
*****************************************************************************/
void setup()
{
lcd.begin();
}

/*****************************************************************************
* Main Loop
*****************************************************************************/
void loop()
{
static uint32_t cnt_loop = 0;
cnt_loop++;

uint32_t ui32_lcd_delay = 3000;

uint8_t uc_val = 0xFF;
int32_t i32_val = -456798;
uint32_t ui32_val = 0xFFFFFFFF;
float f_val = 1234.89;

lcd.clear();
lcd << "-- Operator << --" << endl;
delay(ui32_lcd_delay);

lcd.clear();
lcd.println(F("Const char in flash"));
lcd.println(F("I am in flash !"));
delay(ui32_lcd_delay);

lcd.clear();
lcd.println(F("-- Print String --"));
String string("I am a string !");
lcd << string << endl;
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Print char --" << endl;
lcd << "char : " << 'a' << endl;
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Print Printable --" << endl;
PrintableObject my_object(15, "my object");
lcd << my_object << endl;
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Print number --" << endl;
lcd << "uint8_t: " << uc_val << endl;
lcd << "uint8_t: 0x" << _HEX(uc_val) << endl;
lcd << "uint8_t: 0b" << _BIN(uc_val) << endl;
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Print number --" << endl;
lcd << "int32_t: " << i32_val << endl;
lcd << "int32_t: 0x" << _HEX(i32_val) << endl;
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Print float --" << endl;
lcd << "float: " << f_val << endl;
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Backlight OFF --" << endl;
lcd.backlight(false);
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Backlight ON --" << endl;
lcd.backlight(true);
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- CursorXY (5,3) --" << endl;
lcd.cursorXY(5, 3);
lcd << 'X';
delay(ui32_lcd_delay);

lcd.clear();
lcd << "- CursorXY (10,2) -" << endl;
lcd << _XY(10, 2) << 'X';
delay(ui32_lcd_delay);

lcd.clear();
lcd.print("-- Cursor OFF --");
lcd.cursor(false);
delay(ui32_lcd_delay);

lcd.clear();
lcd.print("-- Cursor ON --");
lcd.cursor(true);
delay(ui32_lcd_delay);

lcd.clear();
lcd << "-- Cursor Home --" << endl;
lcd.home();
delay(ui32_lcd_delay);

lcd.clear();
lcd.cursor(false);

for(uint8_t j = 0; j < 4; j++)
{
uint8_t i = 0;
for (i = 0; i < 13; i++) //move string to right
{
lcd.cursorXY(i, 1);
lcd << " Hello ";
delay(100); //delay 100ms
}
for (; i > 0; i--) //move string to left
{
lcd.cursorXY(i, 1);
lcd << " Hello ";
delay(100);
}
}

lcd.clear();
lcd << _XY(1,0) << "Thanks for watching" << endl;
delay(10000);
}

/*****************************************************************************
* END OF FILE
*****************************************************************************/

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: I2CLCD geeft geen tekst.

Berichtdoor nicoverduin » 24 Nov 2016, 22:22

pleur die sketch voorlopig maar weg en probeer eerst maar gewoon deze:
cpp code
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x3F for a 20 chars and 4 line display
LiquidCrystal_I2C lcd(0x3F, 20, 4);

void setup()
{
// initialize the LCD
lcd.begin();

// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Hello, world!");
}

void loop()
{
// Do nothing here...
}
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: I2CLCD geeft geen tekst.

Berichtdoor benvo » 25 Nov 2016, 17:06

Dank voor de reactie.
Deze sketch heb ik inderdaad ook al geprobeerd.

Bij veel sketches, ook deze, krijg ik de foutmelding, "Fout bij het compileren van het board Arduino/Genuino Mega or Mega 2560"
Hierop heb ik gegoogeld. Bij een eerder topic verwees je hiernaar, de geboden oplossing, avr-gcc verwijderen is hier niet van toepassing. Iets anders vond ik niet dus veel wordt ik daar niet wijzer van. Wat ik dan wel heb gedaan, mocht hier het probleem liggen, is de IDE versie 1.6.13 verwijderd en teruggezet naar IDE 1.6.12. Dat maakte overigens ook geen verschil.
Of dit verder nog invloed heeft weet ik niet maar voor de volledigheid: Ik werk op een computer met windows 10. En bij het downloaden, zo bedenk ik me, heb ik altijd een virusscanner aanstaan...

Groet,
Ben.

Gebruikers-avatar
Berichten: 35
Geregistreerd: 13 Okt 2016, 21:17

Re: I2CLCD geeft geen tekst.

Berichtdoor PA9CW » 25 Nov 2016, 17:08

Je moet wel de lib Wire en LiquidCrystal_I2C in je bibliotheek hebben staan.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: I2CLCD geeft geen tekst.

Berichtdoor nicoverduin » 25 Nov 2016, 17:29

benvo schreef:Dank voor de reactie.
Deze sketch heb ik inderdaad ook al geprobeerd.

Bij veel sketches, ook deze, krijg ik de foutmelding, "Fout bij het compileren van het board Arduino/Genuino Mega or Mega 2560"
Hierop heb ik gegoogeld. Bij een eerder topic verwees je hiernaar, de geboden oplossing, avr-gcc verwijderen is hier niet van toepassing. Iets anders vond ik niet dus veel wordt ik daar niet wijzer van. Wat ik dan wel heb gedaan, mocht hier het probleem liggen, is de IDE versie 1.6.13 verwijderd en teruggezet naar IDE 1.6.12. Dat maakte overigens ook geen verschil.
Of dit verder nog invloed heeft weet ik niet maar voor de volledigheid: Ik werk op een computer met windows 10. En bij het downloaden, zo bedenk ik me, heb ik altijd een virusscanner aanstaan...

Groet,
Ben.

Ben
Ik had eigenlijk wel verwacht dat je inmiddels weet dat je eerst de uitgebreide melding aan moet zetten in de IDE:
Bestand->Voorkeuren en dan "uitgebreide weergave tijdens compileren en uploaden" aanvinken. De IDE opstarten en dan krijg je alles te zien bij meldingen.
Dan pas kunnen wij zien wat er fout gaat. En aan downloaden kom je volgens mij niet toe als er iets fout gaat tijdens het compileren.......
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: I2CLCD geeft geen tekst.

Berichtdoor benvo » 25 Nov 2016, 20:29

@PA9CW: De library's staan in mijn bibliotheek.

@Nico Verduin:

Dit is de foutmelding:

Arduino: 1.6.12 (Windows 10), Board:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"


compilation terminated.

Meerdere bibliotheken gevonden voor "LiquidCrystal_I2C.h"
Gebruikt: C:\Users\ribe2\Documents\Arduino\libraries\LiquidCrystal_I2C
Niet gebruikt: C:\Users\ribe2\Documents\Arduino\libraries\NewliquidCrystal
Bibliotheek Wire op versie 1.0 in map: D:\Arduino\hardware\arduino\avr\libraries\Wire wordt gebruikt
Bibliotheek LiquidCrystal_I2C in map: C:\Users\ribe2\Documents\Arduino\libraries\LiquidCrystal_I2C (legacy) wordt gebruikt
exit status 1
Fout bij het compileren van board Arduino/Genuino Mega or Mega 2560

Groet,
Ben.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: I2CLCD geeft geen tekst.

Berichtdoor nicoverduin » 25 Nov 2016, 21:06

Je moet ff een van die I2C libs verwijderen. Ik zou zelf newliquidcrystal eruit knikkeren....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 340
Geregistreerd: 23 Okt 2016, 20:29

Re: I2CLCD geeft geen tekst.

Berichtdoor benvo » 25 Nov 2016, 22:14

Is gebeurd, Nico.

Aanvankelijk gaf hij nog een fout: "no matching function for call to 'LyquidCrystral_I2C::begin()' Na de regel te veranderen in "LCD.begin(0x3F,20,4);" verdwijnt de foutmelding en lijkt alles goed te gaan. Onder in het beeld zie ik witte teksten gaan. Daarna razendsnel een paar rode teksten uitmondend in de tekst in rood: avrdude done. Thank you. Uploaden voltooid. Er is nog steeds geen tekst op mijn LCD scherm te zien!

Volgende

Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten