รบกวนถามเรื่อง 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);
  }
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่