Go Down

Topic: Help with Variable for LCD 5110 / PCD8544 (Read 767 times) previous topic - next topic

Smokers_Choice

May 28, 2013, 02:57 pm Last Edit: May 29, 2013, 04:27 pm by Smokers_Choice Reason: 1
Hallo

Sorry my bad english!!

I can't get my LCD to show a Light variable  =(

My code:
Code: [Select]

#include "pitches.h"
#include <LCD5110.h>

const int maxi = 20;
const int mini = 1;

// The update interval
const int refresh = 500;

int ldrPin = 0;
int light = 0;

const int startFreq = 10000;
const int stopFreq = 15000;

// notes in the melody:
int melody[] = {
 NOTE_G3, NOTE_G3, NOTE_G3, NOTE_DS3,0, NOTE_F3, NOTE_F3, NOTE_F3, NOTE_D3};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
 4, 4, 4, 2, 4, 4, 4, 4, 2 };


void setup(void)
{
 LcdInitialise();
 LcdClear();

 gotoXY(12,0);
 LcdString("NJA Light");
}


void loop(void)
{
light = analogRead(ldrPin);
light = light/10;

// Serial.print("Light reading = ");
// Serial.println(light);
delay(refresh);



// ************ START ******************

 LcdInitialise();
 gotoXY(1,2);
 LcdString("Light:");
 gotoXY(45,2);
 LcdString(light);  // !! This Line1 will not work!!

delay(1000);

if (light <mini){  
// Serial.println("Dark");
delay(5000);
 // iterate over the notes of the melody:
 for (int thisNote = 0; thisNote < 9; thisNote++) {

   // to calculate the note duration, take one second
   // divided by the note type.
   //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
   int noteDuration = 1000/noteDurations[thisNote];
   tone(8, melody[thisNote],noteDuration);

   // to distinguish the notes, set a minimum time between them.
   // the note's duration + 30% seems to work well:
   int pauseBetweenNotes = noteDuration * 1.30;
   delay(pauseBetweenNotes);
   // stop the tone playing:
   noTone(8);
 }  
} else if (light >maxi){
 // Serial.println("High Sun!");
   int i;
 
 for (i = startFreq; i <= stopFreq; i++) {
   tone(8, i);
   delayMicroseconds(10);}
   
  for (i = stopFreq; i >= startFreq; i--) {
     tone(8, i);
     delayMicroseconds(1000);}
   noTone(8);
}

// ************ END

 }


And i can't see what i do wrong, plz help me someone, somebody. ;-)     (Then your will make a danish boy happy)

Thanks for helping :-)

Smokers_Choice

I read this post and now it's work as I will. :-D

http://forum.arduino.cc/index.php?topic=95585.0

My New Code:
Code: [Select]

#include <LCD5110.h>

int lcdled = 9;

const int minvalue=1; // 0-255 and 0=Dark 255=Low Light
const int maxvalue=20; // 0-255 and 0=Dark 255=High Light
int light = 0;
const int startFreq = 10000;
const int stopFreq = 15000;
const int refresh = 1000;

void setup() {
  pinMode(lcdled, OUTPUT);
  Serial.begin(9600);                //Start the Serial connection
  LcdInitialise();
  LcdClear();

  gotoXY(12,0);
  LcdString("NJA Light");
}

void loop() {
  noTone(8);
  int sensorValue1 = analogRead(0);
  sensorValue1 = sensorValue1/4;
 
  int sensorValue2 = analogRead(0);
  sensorValue2 = sensorValue2/4;
 
  if(sensorValue1>maxvalue)
  {
    Serial.println("High");
      // analogWrite(lcdled, sensorValue);   
    int i;
 
  for (i = startFreq; i <= stopFreq; i++) {
    tone(8, i);
    delayMicroseconds(10);}
   
   for (i = stopFreq; i >= startFreq; i--) {
      tone(8, i);
      delayMicroseconds(100);}
    noTone(8);
  }
  else if (sensorValue1<minvalue)
  {
    Serial.println("Low");
      // analogWrite(lcdled, sensorValue);   
  noTone(8);
  }
      analogWrite(lcdled, sensorValue2);
  LcdInitialise();
  LcdClear();
  gotoXY(12,0);
  LcdString("NJA Light");
  gotoXY(1,2);
  LcdString("LDR:");
 
  char buf [0];
sprintf (buf, "%i", sensorValue1);
gotoXY(45,2);
LcdString(buf);

gotoXY(68,2);
LcdString("%");

  gotoXY(1,4);
  LcdString("LCD:");
 
   char buf2 [0];
sprintf (buf2, "%i", sensorValue2);
gotoXY(45,4);
LcdString(buf2);

gotoXY(68,4);
LcdString("%");

  Serial.println("NJA Light: ");
  Serial.println(sensorValue1);
  Serial.println(sensorValue2);
  delay(refresh);

}

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy