Pages: [1] 2 3   Go Down
Author Topic: I Keep getting errors when I try to upload  (Read 2836 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello, Im new to the whole arduino thing and to be honest im really excited about it smiley

I have a school project Im working on that requires automation. I borrowed this text from

http://www.instructables.com/id/Environmental-Mushroom-Control-Arduino-Powered/?ALLSTEPS

and I tried to upload it to my arduino. I keep getting errors and after doing some research Im still finding myself stuck in a loop. From what I understand the LCD4bit library is outdated and useless, (this is the library used) but when i replace the library with LiquidCrystall I get a whole new batch of problems. Can anyone help me out?

Im very excited about growing mushrooms and plants smiley

Thanks!

I forgot the text! Woops:

http://www.instructables.com/files/orig/FMK/3BR4/GAPURHM2/FMK3BR4GAPURHM2.tmp
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 238
Posts: 24298
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I keep getting errors
Which are..?
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:29:57: error: WConstants.h: No such file or directory
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::pulseEnablePin()':
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:58: error: 'LOW' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:58: error: 'digitalWrite' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:59: error: 'delayMicroseconds' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:61: error: 'HIGH' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:64: error: 'delay' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::pushNibble(int)':
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:73: error: 'digitalWrite' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::commandWriteNibble(int)':
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:99: error: 'LOW' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:99: error: 'digitalWrite' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::commandWrite(int)':
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:106: error: 'LOW' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:106: error: 'digitalWrite' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::print(int)':
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:118: error: 'HIGH' was not declared in this scope
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:118: error: 'digitalWrite' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:119: error: 'LOW' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::clear()':
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:139: error: 'delay' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::init()':
...\Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:146: error: 'OUTPUT' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:146: error: 'pinMode' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:154: error: 'delay' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:160: error: 'delayMicroseconds' was not declared in this scope
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp: In member function 'void LCD4Bit::leftScroll(int, int)':
...Desktop\arduino-1.0.1\libraries\LCD4Bit\LCD4Bit.cpp:225: error: 'delay' was not declared in this scope


Thats when i use LCD4bit library



sketch_oct11c:151: error: 'LCD4Bit' was not declared in this scope
sketch_oct11c.cpp: In function 'void setup()':
sketch_oct11c:201: error: no matching function for call to 'LiquidCrystal::init()'
C:\Users\...\Desktop\arduino-1.0.1\libraries\LiquidCrystal/LiquidCrystal.h:60: note: candidates are: void LiquidCrystal::init(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
sketch_oct11c.cpp: In function 'void loop()':
sketch_oct11c:278: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:279: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:284: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:286: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:288: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:290: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:292: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:293: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:294: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:296: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:298: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:299: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:300: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:302: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:381: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:384: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:388: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:391: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:394: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:398: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:401: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:404: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:407: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:410: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:413: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:416: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:459: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:466: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:471: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:476: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:481: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:489: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:496: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:501: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:506: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:511: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:521: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:528: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:533: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:538: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:543: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:550: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:551: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:553: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:554: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:556: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:557: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:577: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:581: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:583: error: 'class LiquidCrystal' has no member named 'cursorTo'
sketch_oct11c:588: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:592: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:596: error: 'class LiquidCrystal' has no member named 'printIn'
sketch_oct11c:600: error: 'class LiquidCrystal' has no member named 'printIn'

when i use liquid crystall
« Last Edit: October 11, 2012, 08:27:09 pm by AlanFFM » Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 238
Posts: 24298
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
LCD4Bit lcd = LCD4Bit(2); // use both lines
Quote
sketch_oct11c:151: error: 'LCD4Bit' was not declared in this scope
I'm guessing ( because I can't see your code) that you left that line in.

This Is well worth a read
« Last Edit: October 11, 2012, 08:39:30 pm by AWOL » Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So basically I have to delete any LCD4bit keywords? Im still lost =/
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 238
Posts: 24298
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

And lost you will probably remain until you post your code.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm not sure if this is waht you mean by code, but this is what i try to upload to the arduino.

I tried switching out LCD4bit with liquid crystall and got the errors above i posted in the last post.

Code:
#include <LCD4Bit.h>
#include <stdlib.h> // for itoa() call
#include <EEPROM.h>



/* Humidity Calibration
 Hum     Time between pulses
 75%            788.4
 100.00% 840
 y = mx +c ,
 Where y = Time to between up pulses, x = humidity value
 */
#define HUMIDITY_C  680 //668  
#define HUMIDITY_M 1.6 //1.72

/* Temperature/Thermistor Calibration
5v--100k_Therm--input--100k --gnd
 y = bit value from input, x = Temperature Value
 y = mx +c    */
#define TEMPERATURE_M 13.31
#define TEMPERATURE_C 188.1

/* Carbon dioxide calibration
  y = MLogn(x) + C
  x = e^((y-C)/M)

  where y is bit value and x is c02 concentration
 C02 Bit Value
400 279.98

10000 -0.03
  =-87*(LN(N25))+800
 */
#define Carbon_M -83.45 // was-87
#define Carbon_C 768.62 //was 800

/***********************/
/* Interval Definitions*/
#define INTERVAL 30000 //Define ms INTERVAL in between trigerring
#define SENSOR_INTERVAL 400 // SENSOR INTERVAL
#define BACKLIGHT_TIME 180000 // 1 minute for backlight on after no keypress. NOT BEING USED NOW
#define EE_PROM_INTERVAL 600000 //write data to eeprom every 10minutes

/*******/
/*Define array size to be used for averaging. */
/*In The array, the max value and min value are taken out and the rest averaged*/
/* If 2 or less, it is just averaged*/
#define ARRAY_SIZE 30



/**********************/
/*Hysterisis Intervals*/
#define TEMP_LO 1
#define TEMP_HI 2
#define HUM_LO 5
#define HUM_HI 0 //trimmed as tends to overshoot
#define CO2_LO 200
#define CO2_HI 100

/**********************/
/* Define input Pins  */
//Analog
#define THERM1  1    // Analog 1 Thermistor 1   voltage
#define THERM2 2    // Analog 2   Thermistor 2 Voltage
#define CARBONDI3 3 // Analog 3
// Digital
#define HUMIDITY2 2 // Digital 2 Humidity  

/**********************/
/*Define output  Pins */
//Digital
#define LEDPIN  13     // select the pin for the LED
#define RELAY1  3      // Relay to start the first heater
#define RELAY2  11      // Relay to start the second heater
#define RELAY3  12     //Relay to start the humidifier
#define RELAY4  13     //Relay to start air pump
#define BACKLIGHT 10   //backlight Pin Value
//Can use pins 0 + 1 if serial not being used.. or use an analog pin.

/******Define Size of storage array for values*/
#define ARRAY_STORE 200 //how many lines to store in eeprom. ARRAY_STORE*4 <1k



/*****************************/
/*set Triggers *************/
int heatTrigger1  = 25;
int heatTrigger2  = 20;
int HumTrigger = 80;  
int C02Trigger = 800;

/***************************/
/* Sensor Value initialize */
int thermValue1 = 0;  
int thermValue2 = 0;
int humValue = 0;
int carbonDiVal = 0;

int therm1[ARRAY_SIZE];
int therm2[ARRAY_SIZE];
int humval[ARRAY_SIZE];
int carbonD[ARRAY_SIZE];



/************************/
/*Set time check ms     */
long last_check = millis();
long sensor_check = millis();
long backlight = millis();
int timing = millis();
long time_eeprom = millis();

/**************************/
/** LCD Shield            */
LCD4Bit lcd = LCD4Bit(2); // use both lines
char buf[5]; //used in conversion of int to char for lcd

int configure = 0; //use select as an on/off for configuring
int showReading = 0; //select which value to modify  0-3
int adc_key_in = 1024; //Start with -1 key value

int adc_key_val[5] = {
  100, 160, 360, 770, 800 }; //Analog values from Keys on keypad shield

/*
int adc_key_val[5] = {
 65, 218, 393, 601,1000};
 */
int NUM_KEYS = 5;
int key= -1;

char trigger_names[4][15] = {  
  "Temp Trigger 1",
  "Temp Trigger 2",
  "Humid Trigger",
  "C02 Trigger" };

/* Set up index value for storing values in eeprom*/
int k=0;



void setup()
{
  // declare pins as output
  //pinMode(LEDPIN, OUTPUT);  
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
  pinMode(RELAY3, OUTPUT);
  pinMode(RELAY4, OUTPUT);

  //Setup averaging arrays
  int i;


  for(i=0; i< ARRAY_SIZE; i++)
  {
    therm1[i] = 512;
    therm2[i] = 512;
    humval[i] = 735;
    carbonD[i] = 645;
  }
  //pinMode(BACKLIGHT,OUTPUT); Backlight on all the time, so comment out this.

  lcd.init();
  lcd.clear();
  digitalWrite(BACKLIGHT,HIGH);
  //Start serial comms with computer
  Serial.begin(115200);



}

void loop() {


  key = get_key(adc_key_in); //In case

  //reset sensor_check if millis() has overflowed
  if( millis() < sensor_check ){ sensor_check = millis();  }

/* This is for backlight off delay.
  if ( (millis() < backlight) || millis() > (backlight + BACKLIGHT_TIME))
  { digitalWrite(BACKLIGHT,LOW); }
*/


  /*Read sensor only after delay of sensor_check*/
  if(millis() - sensor_check > SENSOR_INTERVAL )
  {
    sensor_check = millis();

    int i;

    for (i=0; i < ARRAY_SIZE -1 ; i++) {  
      therm1[i] = therm1[i+1];
      therm2[i] = therm2[i+1];
      humval[i] = humval[i+1];
      carbonD[i] = carbonD[i+1];
    }



    /*** Read in sensor values and change to fit actual temp/hum/ppm values*/
    therm1[ARRAY_SIZE -1] = analogRead(THERM1);    
    int temp1 = mov_avg(therm1);
    thermValue1 = (temp1 - TEMPERATURE_C)/TEMPERATURE_M; // x = (y-c)/m

    therm2[ARRAY_SIZE -1] = analogRead(THERM2);      //thermValue2 = analogRead(THERM2);
    int temp2 = mov_avg(therm2);
    thermValue2 = (temp2- TEMPERATURE_C) /TEMPERATURE_M;

    int hum_temp = pulseIn(HUMIDITY2,HIGH,2000); //
    if (hum_temp > 40 )  //Remove some non readings which give huge negative numbers
    {
      humval[ARRAY_SIZE -1] = hum_temp;
      hum_temp = mov_avg(humval);
      humValue = (hum_temp - HUMIDITY_C)/HUMIDITY_M; // y -c/M = x
    }

    int c_temp = analogRead(CARBONDI3);
    Serial.print(c_temp);
   /*if (( c_temp > 0 ) && (c_temp <300))      //stops unecessary calcs which grind arduino to a halt
    {*/
      carbonD[ARRAY_SIZE -1] = c_temp;
      c_temp = mov_avg(carbonD);
      Serial.print(":");
      Serial.print(c_temp);
      float c_float = c_temp - Carbon_C; // For ease of use in power function
      c_float = c_float/Carbon_M;
      Serial.print(":");
      Serial.print(c_float);
      carbonDiVal  = pow(2.718,c_float);
    //}
    Serial.print(":");
    Serial.println(carbonDiVal);



/***************************/

 

........ ran out of pasting room.

the whole thing is here: http://www.instructables.com/files/orig/FMK/3BR4/GAPURHM2/FMK3BR4GAPURHM2.tmp

Moderator edit: I forgot to say (I assumed you'd read the post about how to post) "...and don't forget to use code tags.
« Last Edit: October 12, 2012, 08:56:10 am by AWOL » Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 238
Posts: 24298
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
#include <LCD4Bit.h>
Code:
LCD4Bit lcd = LCD4Bit(2); // use both line
I thought we'd already established that you weren't using that?
« Last Edit: October 12, 2012, 08:58:29 am by AWOL » Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry im still new ><

I replaced LCD4bit so now it looks like this.. .

Code:

#include <LiquidCrystal.h>


#include <stdlib.h> // for itoa() call
#include <EEPROM.h>


/* Humidity Calibration
 Hum     Time between pulses
 75%            788.4
 100.00% 840
 y = mx +c ,
 Where y = Time to between up pulses, x = humidity value
 */
#define HUMIDITY_C  680 //668  
#define HUMIDITY_M 1.6 //1.72

/* Temperature/Thermistor Calibration
5v--100k_Therm--input--100k --gnd
 y = bit value from input, x = Temperature Value
 y = mx +c    */
#define TEMPERATURE_M 13.31
#define TEMPERATURE_C 188.1

/* Carbon dioxide calibration
  y = MLogn(x) + C
  x = e^((y-C)/M)

  where y is bit value and x is c02 concentration
 C02 Bit Value
400 279.98

10000 -0.03
  =-87*(LN(N25))+800
 */
#define Carbon_M -83.45 // was-87
#define Carbon_C 768.62 //was 800

/***********************/
/* Interval Definitions*/
#define INTERVAL 30000 //Define ms INTERVAL in between trigerring
#define SENSOR_INTERVAL 400 // SENSOR INTERVAL
#define BACKLIGHT_TIME 180000 // 1 minute for backlight on after no keypress. NOT BEING USED NOW
#define EE_PROM_INTERVAL 600000 //write data to eeprom every 10minutes

/*******/
/*Define array size to be used for averaging. */
/*In The array, the max value and min value are taken out and the rest averaged*/
/* If 2 or less, it is just averaged*/
#define ARRAY_SIZE 30



/**********************/
/*Hysterisis Intervals*/
#define TEMP_LO 1
#define TEMP_HI 2
#define HUM_LO 5
#define HUM_HI 0 //trimmed as tends to overshoot
#define CO2_LO 200
#define CO2_HI 100

/**********************/
/* Define input Pins  */
//Analog
#define THERM1  1    // Analog 1 Thermistor 1   voltage
#define THERM2 2    // Analog 2   Thermistor 2 Voltage
#define CARBONDI3 3 // Analog 3
// Digital
#define HUMIDITY2 2 // Digital 2 Humidity  

/**********************/
/*Define output  Pins */
//Digital
#define LEDPIN  13     // select the pin for the LED
#define RELAY1  3      // Relay to start the first heater
#define RELAY2  11      // Relay to start the second heater
#define RELAY3  12     //Relay to start the humidifier
#define RELAY4  13     //Relay to start air pump
#define BACKLIGHT 10   //backlight Pin Value
//Can use pins 0 + 1 if serial not being used.. or use an analog pin.

/******Define Size of storage array for values*/
#define ARRAY_STORE 200 //how many lines to store in eeprom. ARRAY_STORE*4 <1k



/*****************************/
/*set Triggers *************/
int heatTrigger1  = 25;
int heatTrigger2  = 20;
int HumTrigger = 80;  
int C02Trigger = 800;

/***************************/
/* Sensor Value initialize */
int thermValue1 = 0;  
int thermValue2 = 0;
int humValue = 0;
int carbonDiVal = 0;

int therm1[ARRAY_SIZE];
int therm2[ARRAY_SIZE];
int humval[ARRAY_SIZE];
int carbonD[ARRAY_SIZE];



/************************/
/*Set time check ms     */
long last_check = millis();
long sensor_check = millis();
long backlight = millis();
int timing = millis();
long time_eeprom = millis();

/**************************/
/** LCD Shield            */
LiquidCrystal lcd = LiquidCrystal(2); // use both lines
char buf[5]; //used in conversion of int to char for lcd

int configure = 0; //use select as an on/off for configuring
int showReading = 0; //select which value to modify  0-3
int adc_key_in = 1024; //Start with -1 key value

int adc_key_val[5] = {
  100, 160, 360, 770, 800 }; //Analog values from Keys on keypad shield

/*
int adc_key_val[5] = {
 65, 218, 393, 601,1000};
 */
int NUM_KEYS = 5;
int key= -1;

char trigger_names[4][15] = {  
  "Temp Trigger 1",
  "Temp Trigger 2",
  "Humid Trigger",
  "C02 Trigger" };

/* Set up index value for storing values in eeprom*/
int k=0;



void setup()
{
  // declare pins as output
  //pinMode(LEDPIN, OUTPUT);  
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
  pinMode(RELAY3, OUTPUT);
  pinMode(RELAY4, OUTPUT);

  //Setup averaging arrays
  int i;


  for(i=0; i< ARRAY_SIZE; i++)
  {
    therm1[i] = 512;
    therm2[i] = 512;
    humval[i] = 735;
    carbonD[i] = 645;
  }
  //pinMode(BACKLIGHT,OUTPUT); Backlight on all the time, so comment out this.

  lcd.init();
  lcd.clear();
  digitalWrite(BACKLIGHT,HIGH);
  //Start serial comms with computer
  Serial.begin(115200);



}

void loop() {


  key = get_key(adc_key_in); //In case

  //reset sensor_check if millis() has overflowed
  if( millis() < sensor_check ){ sensor_check = millis();  }

/* This is for backlight off delay.
  if ( (millis() < backlight) || millis() > (backlight + BACKLIGHT_TIME))
  { digitalWrite(BACKLIGHT,LOW); }
*/


  /*Read sensor only after delay of sensor_check*/
  if(millis() - sensor_check > SENSOR_INTERVAL )
  {
    sensor_check = millis();

    int i;

    for (i=0; i < ARRAY_SIZE -1 ; i++) {  
      therm1[i] = therm1[i+1];
      therm2[i] = therm2[i+1];
      humval[i] = humval[i+1];
      carbonD[i] = carbonD[i+1];
    }



    /*** Read in sensor values and change to fit actual temp/hum/ppm values*/
    therm1[ARRAY_SIZE -1] = analogRead(THERM1);    
    int temp1 = mov_avg(therm1);
    thermValue1 = (temp1 - TEMPERATURE_C)/TEMPERATURE_M; // x = (y-c)/m

    therm2[ARRAY_SIZE -1] = analogRead(THERM2);      //thermValue2 = analogRead(THERM2);
    int temp2 = mov_avg(therm2);
    thermValue2 = (temp2- TEMPERATURE_C) /TEMPERATURE_M;

    int hum_temp = pulseIn(HUMIDITY2,HIGH,2000); //
    if (hum_temp > 40 )  //Remove some non readings which give huge negative numbers
    {
      humval[ARRAY_SIZE -1] = hum_temp;
      hum_temp = mov_avg(humval);
      humValue = (hum_temp - HUMIDITY_C)/HUMIDITY_M; // y -c/M = x
    }

    int c_temp = analogRead(CARBONDI3);
    Serial.print(c_temp);
   /*if (( c_temp > 0 ) && (c_temp <300))      //stops unecessary calcs which grind arduino to a halt
    {*/
      carbonD[ARRAY_SIZE -1] = c_temp;
      c_temp = mov_avg(carbonD);
      Serial.print(":");
      Serial.print(c_temp);
      float c_float = c_temp - Carbon_C; // For ease of use in power function
      c_float = c_float/Carbon_M;
      Serial.print(":");
      Serial.print(c_float);
      carbonDiVal  = pow(2.718,c_float);
    //}
    Serial.print(":");
    Serial.println(carbonDiVal);

    /**Add first line of Display**/
    if (configure == 0)
    {
      lcd.cursorTo(1,0);
      lcd.printIn("T1 T2 Hu CO2");  
    }
    /**** Add second line of the Display *****/
    if (configure == 0)
    {
      lcd.cursorTo(2,0);
      itoa(thermValue1, buf, 10);
      lcd.printIn(buf);

      lcd.cursorTo(2,3);
      itoa(thermValue2, buf, 10);
      lcd.printIn(buf);

      lcd.cursorTo(2,8);
      lcd.printIn(" ");
      lcd.cursorTo(2,6);
      itoa(humValue, buf, 10);
      lcd.printIn(buf);

      lcd.cursorTo(2,12);
      lcd.printIn("  ");
      lcd.cursorTo(2,9);
      itoa(carbonDiVal, buf, 10);
      lcd.printIn(buf);
    }


    /*Print Output Values*/
    /*
Serial.print(thermValue1);
     Serial.print(":");
     Serial.print(thermValue2);
     Serial.print(":");
     Serial.print(hum_temp); //usually humValue
     Serial.print(":");
     Serial.print(carbonDiVal);
     Serial.println(":");
     */
    /* PRINT ARRAYS THAT ARE AVERAGED
     Serial.print("**Therm1*");
     Serial.print(thermValue1);
     Serial.print("*(");
     for( i=0; i<ARRAY_SIZE; i++)
     {
     Serial.print(therm1[i]);
     Serial.print(":");
     }
     Serial.print(")**Therm2*");
     Serial.print(thermValue2);
     Serial.print("*(");
     for( i=0; i<ARRAY_SIZE; i++)
     {
     Serial.print(therm2[i]);
     Serial.print(":");
     }    
     Serial.print(")**Humid*");
     Serial.print(humValue);
     Serial.print("*(");
     for( i=0; i<ARRAY_SIZE; i++)
     {
     Serial.print(humval[i]);
     Serial.print(":");      
     }
     Serial.print(")**carbonD*");
     Serial.print(carbonDiVal);
     Serial.print("*(");
     for( i=0; i<ARRAY_SIZE; i++)
     {
     Serial.print(carbonD[i]);
     Serial.print(":");      
     }
     Serial.println(")");
     */

  }

  /********************************************/
  /*EEPROM STORAGE CODE   *********************/
  if(millis() < time_eeprom) { time_eeprom = millis(); }
  /**Put values into eeprom*/
  if(millis() - time_eeprom > EE_PROM_INTERVAL)
  {
    time_eeprom = millis();
    EEPROM.write((k*4),(thermValue1));
    EEPROM.write((k*4+1),(thermValue2));
    EEPROM.write((k*4+2),(humValue));
    EEPROM.write((k*4+3),(carbonDiVal/10));
    k=k+1;
    if(k>=ARRAY_STORE) { k=0;  }
  }
 

again ran out of room
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 238
Posts: 24298
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
LiquidCrystal lcd = LiquidCrystal(2)
But if you look here, you'll see nothing like what you have written, which is why the compiler is so upset.
How is your LCD connected?
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

3 wires black for ground red for the 5 volt and the Yellow for digital input i believe slot 13
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 238
Posts: 24298
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, it's a serial LCD?
Have you got a link?
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

https://www.sparkfun.com/products/9395

Same one but a red board instead of green (pretty sure that dosent change anything)
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 238
Posts: 24298
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So this thread has been something of a wild goose chase?
Did you read this?
Also this
« Last Edit: October 12, 2012, 09:27:11 am by AWOL » Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Really lost  smiley-sad
I guess theres no way to "plug and play" ... I dont really know much about programming so this is gonna suck lol.
So I guess i need to get their library first. Once i get that I'm going to have to rewrite all the LCD coding. Please tell me im wrong =/
Logged

Pages: [1] 2 3   Go Up
Jump to: