
มีปัญหาเรื่องการใช้งาน ปรึกษาได้ที่เว็บบอร์ดนี้เลยครับ
ArduinoAll มีสินค้าหลายชนิด ผมอาจจะยังเล่นไม่หมด ต้องขออภัยมาไว้ล่วงหน้าครับผมจะพยายามช่วยแนะนำเท่าที่มีความรู้ ถ้ายังทำไม่เป็นก็จะพยายามหามาให้ ช่วย ๆ กันน่าจะทำออกได้ไว

เลือกบอร์ดถูกต้องแล้ว มองเห็น Comport แล้ว อุปกรณ์ไม่มีปัญหา
ถอดเซนเซอร์ที่ต่ออยู่ออกให้หมดก่อน เช็คการต่อวงจร วิธีการอัพโหลด
แล้วอัพโหลดใหม่ครับ
ลองเปลี่ยนสาย USB (สาย Printer)
ลองเปลี่ยน port usb แล้ว ได้ Com4
อาการเดิมครับ
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd8
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xd8

อาการนี้แจ้งว่าอัพโหลดไม่เข้า เป็นกับโปรแกรม bootloader อาจจะโดนเขียนทับ ลองลง bootloader ใหม่มีวิธีลงในหน้าบทความเรื่อง Arduino Stand Alone
หรืออีกสาเหตุคือชิฟ Atmega328P มีปัญหาครับ
ต้องการให้เปลี่ยนชื่อทุกครั้งเวลาบันทึกขัอมูลใน SD ทำอย่างไรครับ
#include <SPI.h>
#include <SD.h>
#include <LiquidCrystal.h>
#include <LCDKeypad.h> //contrast step
#define DELTA 10
LCDKeypad lcd; //initial backlight
unsigned char bckl=10; //ปรับความสว่าง Backlight
#include <Time.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <Wire.h>
#include <DHT.h>
#include "DHT.h"
File myFile;
DHT dht;
//LiquidCrystal lcd(8,9,4,5,6,7);
const int chipSelect = 5; //ขาดาต้าดึงข้อมูล SD
byte customChar8[8]={
0b00111,
0b00101,
0b00111,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup()
{
pinMode(10, OUTPUT);
analogWrite(10, bckl);
lcd.begin(16,2);
lcd.clear();
dht.setup(2); // เซนเซอร์อุณหภูมิ ขา 2
Serial.begin(9600);
Serial.print("Initializing SD card...");
pinMode(SS, OUTPUT);
if (!SD.begin(chipSelect))
{
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
Serial.println();
lcd.begin(16,2);
lcd.setCursor(0,0); // ไปทตัวอักษรที่ 1 แถวที่ 1
lcd.print("Temp&Humi Record");
lcd.setCursor(4,1); // ไปทตัวอักษรที่ 4 แถวที่ 2
lcd.print("Start!!!");
delay(2000);
lcd.clear();
}
void loop()
{
int btn;
lcd.clear();
tmElements_t tm;
float temperature = dht.getTemperature()-2; // ดึงค่าอุณหภูมิ+แก้ค่า
float humidity = dht.getHumidity()+1; // ดึงค่าความชื้น+แก้ค่า
lcd.setCursor(0,0);
lcd.print(tm.Day);
lcd.write('/');
lcd.print(tm.Month);
lcd.write('/');
lcd.print(tmYearToCalendar(tm.Year));
lcd.setCursor(11,0);
if (tm.Hour < 10) {
lcd.print('0');
}
lcd.print(tm.Hour);
lcd.print(":");
lcd.setCursor(14,0);
if (tm.Minute < 10) {
lcd.print('0');
}
lcd.print(tm.Minute);
lcd.setCursor(0,1); // ไปที่ตัวอักษรที่ 1 แถวที่ 1
lcd.print("T: ");
lcd.setCursor(2,1); // ไปที่ตัวอักษรที่ 3 แถวที่ 1
lcd.print(temperature);//compensate temperature
lcd.createChar(0,customChar8);
lcd.setCursor(6,1);
lcd.write((uint8_t)0);
lcd.setCursor(7,1); // ไปที่ตัวอักษรที่ 7 แถวที่ 2
lcd.print("C");
lcd.setCursor(9,1); // ไปที่ตัวอักษรที่ 9 แถวที่ 2
lcd.print("H: ");
lcd.setCursor(11,1);
lcd.print(humidity);//compensate humidity
lcd.setCursor(15,1);
lcd.print("%");
if (RTC.read(tm))
{
Serial.print("Date ");
Serial.print(tm.Day);
Serial.write('/');
Serial.print(tm.Month);
Serial.write('/');
Serial.print(tmYearToCalendar(tm.Year));
Serial.print("\t");
Serial.print("Time ");
print2digits(tm.Hour);
Serial.write(':');
print2digits(tm.Minute);
Serial.write(':');
print2digits(tm.Second);
Serial.print("\t");//เว้นวรรค
Serial.print("Sensor ");
Serial.print(dht.getStatusString());
Serial.print("\t");
Serial.print("Temp. ");
Serial.print(temperature, 1);
Serial.print(" ºC");
Serial.print("\t");
Serial.print("Humi. ");
Serial.print(humidity, 1);
Serial.print(" %");
Serial.print("\t");
Serial.println();//ขึ้นบรรทัดใหม่
}
else // จะขึ้นเมื่อ Shield เวลามีปัญหา
{
if (RTC.chipPresent())
{
Serial.println("The DS1307 is stopped. Please run the SetTime");
Serial.println("example to initialize the time and begin running.");
Serial.println();
}
else
{
Serial.println("DS1307 read error! Please check the circuitry.");
Serial.println();
}
}
//บันทึกเข้า SD
myFile = SD.open("Temp-Rec.txt", FILE_WRITE);
if (myFile)
{
myFile.print("Date ");
myFile.print(tm.Day);
myFile.write('/');
myFile.print(tm.Month);
myFile.write('/');
myFile.print(tmYearToCalendar(tm.Year));
myFile.print("\t");
myFile.print("Time ");
myFile.print(tm.Hour);
myFile.write(':');
myFile.print(tm.Minute);
myFile.write(':');
myFile.print(tm.Second);
myFile.print("\t");//เว้นวรรค
myFile.print("Sensor ");
myFile.print(dht.getStatusString());
myFile.print("\t");
myFile.print("Temp. ");
myFile.print(temperature, 1);
myFile.print(" ºC");
myFile.print("\t");
myFile.print("Humi. ");
myFile.print(humidity, 1);
myFile.print(" %");
myFile.print("\t");
myFile.println();
myFile.close();// close the file:
}
else // if the file didn't open, print an error:
{
Serial.println("error opening Temp-Rec.txt");
}
delay(1000); // กำหนดเวลาในการอ่านค่า
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
Serial.print(number);
}

คำสั่งตั่งชื่อไฟล์ที่บันทึก ตรงนี้ครับ
myFile = SD.open("Temp-Rec.txt", FILE_WRITE);

คอมไพล์ไม่ผ่าน มาจาก 2 สาเหตุหลักครับ
1. เขียนโคดผิด จะมีแจ้งว่าผิดที่บรรทัดไหน
2. ไลบารีไม่ถูกต้อง จะแจ้งว่าไม่พบไฟล์ เช็คว่าลงไลบารีครบถูกต้องแล้ว

สำหรับใครที่ติดปัญหาตรงไหน ทำไม่ออก โพสถามในกระทู้ใหม่ ได้เลยครับ
ArduinoAll ขาย Arduino ซื้อ Arduino ทุกอย่าง เปลี่ยนชื่อเป็น AllNewStep