Go Down

Topic: LCD scherm (Read 514 times) previous topic - next topic

sanjanakanhai

Code: [Select]
/*
  setColor.ino
  2013 Copyright (c) Seeed Technology Inc.  All right reserved.

  Author:Loovee
  2013-10-15

  Grove - Serial LCD RGB Backlight demo.
  you can set color by serial input, input "rrr ggg bbb"

  rrr means red, 0-255, eg: 005, 015, 135
  ggg means green
  bbb means blue
 
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

char dtaUart[15];
char dtaLen = 0;

void setup()
{
    Serial.begin(115200);
    // set up the LCD's number of columns and rows:
    lcd.begin(16, 2);
    // Print a message to the LCD.
    lcd.print("set cllor");
}

void loop()
{

    if(dtaLen == 11)
    {
        int r = (dtaUart[0]-'0')*100 + (dtaUart[1] - '0')*10 + (dtaUart[2] - '0');          // get r
        int g = (dtaUart[4]-'0')*100 + (dtaUart[5] - '0')*10 + (dtaUart[6] - '0');
        int b = (dtaUart[8]-'0')*100 + (dtaUart[9] - '0')*10 + (dtaUart[10] - '0');
       
        dtaLen = 0;
       
        lcd.setRGB(r, g, b);

        Serial.println("get data");
       
        Serial.println(r);
        Serial.println(g);
        Serial.println(b);
        Serial.println();

    }
}

void serialEvent()
{
    while(Serial.available())
    {
        dtaUart[dtaLen++] = Serial.read();
    }
}

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

Ik gebruik de volgende Library: Grove_LCD_RGB_Backlight-master

sanjanakanhai

Code: [Select]
/*
  CustomCharacter.ino
  2013 Copyright (c) Seeed Technology Inc.  All right reserved.

  Author:Loovee
  2013-9-18

  Grove - Serial LCD RGB Backlight demo.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

// make some custom characters:
byte heart[8] = {
    0b00000,
    0b01010,
    0b11111,
    0b11111,
    0b11111,
    0b01110,
    0b00100,
    0b00000
};

byte smiley[8] = {
    0b00000,
    0b00000,
    0b01010,
    0b00000,
    0b00000,
    0b10001,
    0b01110,
    0b00000
};

byte frownie[8] = {
    0b00000,
    0b00000,
    0b01010,
    0b00000,
    0b00000,
    0b00000,
    0b01110,
    0b10001
};

byte armsDown[8] = {
    0b00100,
    0b01010,
    0b00100,
    0b00100,
    0b01110,
    0b10101,
    0b00100,
    0b01010
};

byte armsUp[8] = {
    0b00100,
    0b01010,
    0b00100,
    0b10101,
    0b01110,
    0b00100,
    0b00100,
    0b01010
};


void setup()
{

    lcd.begin(16, 2);
 #if 1   
    // create a new character
    lcd.createChar(0, heart);
    // create a new character
    lcd.createChar(1, smiley);
    // create a new character
    lcd.createChar(2, frownie);
    // create a new character
    lcd.createChar(3, armsDown);
    // create a new character
    lcd.createChar(4, armsUp);
#endif
    // set up the lcd's number of columns and rows:
   
   
    lcd.setCursor(0, 0);
    // Print a message to the lcd.
    lcd.print("I ");
    lcd.write((unsigned char)0);
    lcd.print(" Arduino! ");
    lcd.write(1);
}

void loop()
{
    // read the potentiometer on A0:
    int sensorReading = analogRead(A0);
    // map the result to 200 - 1000:
    int delayTime = map(sensorReading, 0, 1023, 200, 1000);
    // set the cursor to the bottom row, 5th position:
    lcd.setCursor(4, 1);
    // draw the little man, arms down:
    lcd.write(3);
    delay(delayTime);
    lcd.setCursor(4, 1);
    // draw him arms up:
    lcd.write(4);
    delay(delayTime);
}

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

Ook zou ik het poppetje (arm up en down) na het woord einde willen laten zien. Het lukt mij ook niet om dat te doen

sterretje

Dat programma (reply #15) moet in principe iedere keer een nieuwe kleur geven als je wat ingeeft in the seriele monitor.

Heb je dat geprobeerd? Wat was het resultaat?
Snap je hoe het programma werkt?
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

sanjanakanhai

Ik werk nog niet zo lang met dit programma. Daarom heb ik jullie hulp hard nodig! Dank hiervoor. Ik moet dinsdag mijn code inleveren voor een project op school.

sterretje

#19
Oct 18, 2020, 08:38 pm Last Edit: Oct 18, 2020, 08:39 pm by sterretje
Ik denk dat we over verschillende programmas praten ;)

Ik praat over het programma dat je geschreven hebt en het programma in reply #15.

Waar praat jij over?
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

sanjanakanhai

Hahaha. Ik had het over Arduino in het algemeen. Ik snap de code voor de set color wel een beetje, maar ik snap niet hoe ik het in mijn definitieve code moet zetten. Dat hij bijvoorbeeld groen wordt als je het antwoord goede hebt gegeven.

MAS3

#21
Oct 19, 2020, 12:10 am Last Edit: Oct 19, 2020, 12:14 am by MAS3
Nou, echt moeilijk is dat niet hoor.
Maar alleen wanneer je die sketch hebt geprobeerd en het ook werkt.

In deze regel word de kleur ingesteld:

Code: [Select]
       lcd.setRGB(r, g, b);

Heel veel eenvoudiger gaat het niet.

Om een rode backlight te krijgen doe je dit:

Code: [Select]
       lcd.setRGB(255, 0, 0);

En voor groen:

Code: [Select]
       lcd.setRGB(0, 255, 0);

Voor een geel/oranje achtergrond in andere situaties kun je dit doen:

Code: [Select]
       lcd.setRGB(255, 180, 0);

Je kunt zelf de kleur bepalen door daar mee te spelen.
Dit stukje code moet je dus met de juiste waarden neerzetten op de juiste plaats in je sketch, waarna de kleur zou moeten veranderen totdat jij 'm weer anders instelt.




Nog een andere, algemene tip:
De voorbeelden zijn niet meer dan dat.
Je leert er erg weinig van om die te uploaden naar je Arduino en te kijken wat het doet.
Pas als je die code aanpast en dan uploadt, ga je leren hoe het werkelijk in elkaar steekt.
Doe dat dus met alle voorbeelden die je wil bestuderen.
Juist voor je RGB LCD is dat naast leerzaam ook erg leuk, want je kunt dus letterlijk zien wat er dan gebeurt.



Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Go Up