พอดีผมจะทำระบบรดน้ำต้นไม้อัตโนมัติ ผมได้เขียนขึ้นมาแล้วพอรัน มันขึ้นแบบนี้หมายความว่าอย่างไรครับ
...............................................................................................................................................

...............................................................................................................................................
คือผมไม่ค่อยเข้าใจนะครับ และจะมีข้อความขึ้นด้านล่างว่า
...............................................................................................................................................
Arduino: 1.6.8 (Windows 8.1), Board: "Arduino Mega ADK"
Sketch uses 5,376 bytes (2%) of program storage space. Maximum is 253,952 bytes.
Global variables use 538 bytes (6%) of dynamic memory, leaving 7,654 bytes for local variables. Maximum is 8,192 bytes.
avrdude: ser_open(): can't open device "\\.\COM3": The system cannot find the file specified.
avrdude: ser_drain(): read error: The handle is invalid.
Problem uploading to board. See
http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
.............................................................................................................................................
โค๊ดโปรแกรมอยู่ตรงข้างล่างนี้ครับ รบกวน ผู้ที่รู้มีประสบการณ์ ช่วยตอบหรือบอกวิธีแก้ปัญหาหน่อยนะครับ ขอบคุณครับ
************************************************************************
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(32,16,2);
int levelSensorPin = 0;
int moistureSensorPin = 1;
int soggyLEDPin = 3;
int moistsoilLEDPin = 4;
int drysoilLEDPin = 5;
int pumpLEDPin = 6;
int pumpPin = 7;
int levelSensorValue;
int moistureSensorValue;
int j = 0;
const char *string_table[] =
{
" Welcome ",
" The water pump is on ? ",
" Watering System",
" Please wait!"
};
void setup(){
Serial.begin(9600);
lcd.backlight();
lcd.clear();
Wire.begin();
pinMode(soggyLEDPin, OUTPUT);
pinMode(moistsoilLEDPin,OUTPUT);
pinMode(drysoilLEDPin,OUTPUT);
pinMode(pumpLEDPin,OUTPUT);
pinMode(pumpPin,OUTPUT);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(string_table[6]);
lcd.setCursor(0,1);
lcd.print(string_table[7]);
lcd.setCursor(0,3);
lcd.print(string_table[0]);
// initialization delay
delay(5000);
}
void loop(){
levelSensorValue = analogRead(levelSensorPin);
moistureSensorValue = analogRead(moistureSensorPin);
if(levelSensorValue > 600){
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[1]);
}
if(moistureSensorValue >= 700){
// in case of dry soil:
// system messages
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[2]);
digitalWrite(drysoilLEDPin,HIGH);
digitalWrite(moistsoilLEDPin,LOW);
digitalWrite(soggyLEDPin,LOW);
delay(250);
}
if((moistureSensorValue < 700) && (moistureSensorValue >= 300)){
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[3]);
digitalWrite(drysoilLEDPin,LOW);
digitalWrite(moistsoilLEDPin,HIGH);
digitalWrite(soggyLEDPin,LOW);
delay(250);
}
if(moistureSensorValue < 300){
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[4]);
digitalWrite(drysoilLEDPin,LOW);
digitalWrite(moistsoilLEDPin,LOW);
digitalWrite(soggyLEDPin,HIGH);
delay(100);
}
while(moistureSensorValue >= 700){
lcd.clear();
lcd.setCursor(0,1);
lcd.print(string_table[8]);
lcd.setCursor(0,3);
lcd.print(string_table[5]);
digitalWrite(pumpPin,HIGH);
digitalWrite(pumpLEDPin,HIGH);
delay(10000);
moistureSensorValue = analogRead(moistureSensorPin);
}
// turn the pump off
digitalWrite(pumpPin,LOW);
digitalWrite(pumpLEDPin,LOW);
}
รบกวนถามเรื่อง arduino หน่อยครับ รบกวนผู้รู้ช่วยตรวจโค๊ดหน่อยครับ
...............................................................................................................................................
...............................................................................................................................................
คือผมไม่ค่อยเข้าใจนะครับ และจะมีข้อความขึ้นด้านล่างว่า
...............................................................................................................................................
Arduino: 1.6.8 (Windows 8.1), Board: "Arduino Mega ADK"
Sketch uses 5,376 bytes (2%) of program storage space. Maximum is 253,952 bytes.
Global variables use 538 bytes (6%) of dynamic memory, leaving 7,654 bytes for local variables. Maximum is 8,192 bytes.
avrdude: ser_open(): can't open device "\\.\COM3": The system cannot find the file specified.
avrdude: ser_drain(): read error: The handle is invalid.
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
.............................................................................................................................................
โค๊ดโปรแกรมอยู่ตรงข้างล่างนี้ครับ รบกวน ผู้ที่รู้มีประสบการณ์ ช่วยตอบหรือบอกวิธีแก้ปัญหาหน่อยนะครับ ขอบคุณครับ
************************************************************************
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(32,16,2);
int levelSensorPin = 0;
int moistureSensorPin = 1;
int soggyLEDPin = 3;
int moistsoilLEDPin = 4;
int drysoilLEDPin = 5;
int pumpLEDPin = 6;
int pumpPin = 7;
int levelSensorValue;
int moistureSensorValue;
int j = 0;
const char *string_table[] =
{
" Welcome ",
" The water pump is on ? ",
" Watering System",
" Please wait!"
};
void setup(){
Serial.begin(9600);
lcd.backlight();
lcd.clear();
Wire.begin();
pinMode(soggyLEDPin, OUTPUT);
pinMode(moistsoilLEDPin,OUTPUT);
pinMode(drysoilLEDPin,OUTPUT);
pinMode(pumpLEDPin,OUTPUT);
pinMode(pumpPin,OUTPUT);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(string_table[6]);
lcd.setCursor(0,1);
lcd.print(string_table[7]);
lcd.setCursor(0,3);
lcd.print(string_table[0]);
// initialization delay
delay(5000);
}
void loop(){
levelSensorValue = analogRead(levelSensorPin);
moistureSensorValue = analogRead(moistureSensorPin);
if(levelSensorValue > 600){
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[1]);
}
if(moistureSensorValue >= 700){
// in case of dry soil:
// system messages
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[2]);
digitalWrite(drysoilLEDPin,HIGH);
digitalWrite(moistsoilLEDPin,LOW);
digitalWrite(soggyLEDPin,LOW);
delay(250);
}
if((moistureSensorValue < 700) && (moistureSensorValue >= 300)){
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[3]);
digitalWrite(drysoilLEDPin,LOW);
digitalWrite(moistsoilLEDPin,HIGH);
digitalWrite(soggyLEDPin,LOW);
delay(250);
}
if(moistureSensorValue < 300){
lcd.clear();
lcd.setCursor(0,3);
lcd.print(string_table[4]);
digitalWrite(drysoilLEDPin,LOW);
digitalWrite(moistsoilLEDPin,LOW);
digitalWrite(soggyLEDPin,HIGH);
delay(100);
}
while(moistureSensorValue >= 700){
lcd.clear();
lcd.setCursor(0,1);
lcd.print(string_table[8]);
lcd.setCursor(0,3);
lcd.print(string_table[5]);
digitalWrite(pumpPin,HIGH);
digitalWrite(pumpLEDPin,HIGH);
delay(10000);
moistureSensorValue = analogRead(moistureSensorPin);
}
// turn the pump off
digitalWrite(pumpPin,LOW);
digitalWrite(pumpLEDPin,LOW);
}