#include
#include
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
int sensorValue1 = 0; //ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 1 ช่องเหรียญ1 บาท
int sensorValue2 = 0;//ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 2 ช่องเหรียญ 2 บาท
int sensorValue5 = 0;//ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 3 ช่องเหรียญ 5 บาท
int sensorValue11 = 0;//ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 4 ช่องเหรียญ 10บาท
int x=0;//ประกาศตัวเเปร x
int y=0;//ประกาศตัวเเปร y
int z=0;//ประกาศตัวเเปร z
int c=0;//ประกาศตัวเเปร c
int v=0;//ประกาศตัวเเปร v
int b=0;
int count1=0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 1 บาท
int count2 = 0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 2 บาท
int count5=0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 5 บาท
int count11=0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 10 บาท
void setup()
{
lcd.begin();//gริมต้อนใช้งาน LCD
lcd.backlight();
pinMode (A0,INPUT);//ให้ port A0 เป็นสายเซนเซอร์ ของช่องเหรียญ 1 บาท เป็น INPUT
pinMode (A1,INPUT);//ให้ por A1 เป็นสายเซนเซอร์ ของช่องเหรียญ 2 บาท เป็น INPUT
pinMode (A2,INPUT);//ให้ port A2 เป็นสายเซนเซอร์ ของช่องเหรียญ 5 บาท เป็น INPUT
pinMode (A3,INPUT); //ให้ port A3 เป็นสายเซนเซอร์ ของtช่องเหรียญ 10 บาท เป็น INPUT
Serial.begin(9600); //เริ่มต้อน ใช้งาน Serial monitor
lcd.print("1=");//เเสดงเลข 1 ที่ จอ
lcd.setCursor(0, 1);
lcd.print("2=");//เเสดงเลข 2 ที่ จอ
lcd.setCursor(6, 0);
lcd.print("5=");//เเสดงเลข 5 ที่ จอ
lcd.setCursor(6, 1);
lcd.print("10=");//เเสดงเลข 10 ที่ จอ
lcd.setCursor(12,0 );
lcd.print("T");//เเสดงตัวเลขผลรวมที่ จอ
lcd.setCursor(12,1 );
lcd.print(b);
}
void loop()
{
sensorValue1 = digitalRead(A0); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 1 บาท
sensorValue2 = digitalRead(A1); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 2 บาท
sensorValue5 = digitalRead(A2); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 5 บาท
sensorValue11 = digitalRead(A3); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 10 บาท
if (sensorValue1 == 0) //ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 1 บาท = 1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
count1++;// นับเพิ่มเหรียญ 1 บาท
/// เเสดงผลการนับ ออกจอ LCD///
lcd.setCursor(2, 0);
lcd.print(count1);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}
else if (sensorValue1 == 0)//ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 2บาท =1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
y = count2+=2;// นับเพิ่มเหรียญ 2บาท
/// เเสดงผลการนับ ออกจอ LCD///
lcd.setCursor(2, 1);
lcd.print(y);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}
else if (sensorValue1 == 0)//ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 5 บาท =1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
x = count5+=5;// นับเพิ่มเหรียญ 5บาท
/// เเสดงผลการนับ ออกจอ LCD///
lcd.setCursor(8, 0);
lcd.print(x);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}else if (sensorValue1 == 0)//ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 5 บาท =1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
z = count11+=10;// นับเพิ่มเหรียญ 10 บาท
lcd.setCursor(9, 1);
lcd.print(z);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}
}
อยากทราบว่าโค้ด Arduino ผมถูกไหม ทำไมผมต่อเซนเซอร์นับเหรียญแล้วมันอ่านค่าแค่เหรียญ1บาทเหรียญเดียวครับ
#include
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
int sensorValue1 = 0; //ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 1 ช่องเหรียญ1 บาท
int sensorValue2 = 0;//ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 2 ช่องเหรียญ 2 บาท
int sensorValue5 = 0;//ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 3 ช่องเหรียญ 5 บาท
int sensorValue11 = 0;//ประกาศตัวเเปร ของเซนเซอร์ ตัวที่ 4 ช่องเหรียญ 10บาท
int x=0;//ประกาศตัวเเปร x
int y=0;//ประกาศตัวเเปร y
int z=0;//ประกาศตัวเเปร z
int c=0;//ประกาศตัวเเปร c
int v=0;//ประกาศตัวเเปร v
int b=0;
int count1=0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 1 บาท
int count2 = 0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 2 บาท
int count5=0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 5 บาท
int count11=0;//ประกาศตัวเเปร count1 ให้นับเหรียญ 10 บาท
void setup()
{
lcd.begin();//gริมต้อนใช้งาน LCD
lcd.backlight();
pinMode (A0,INPUT);//ให้ port A0 เป็นสายเซนเซอร์ ของช่องเหรียญ 1 บาท เป็น INPUT
pinMode (A1,INPUT);//ให้ por A1 เป็นสายเซนเซอร์ ของช่องเหรียญ 2 บาท เป็น INPUT
pinMode (A2,INPUT);//ให้ port A2 เป็นสายเซนเซอร์ ของช่องเหรียญ 5 บาท เป็น INPUT
pinMode (A3,INPUT); //ให้ port A3 เป็นสายเซนเซอร์ ของtช่องเหรียญ 10 บาท เป็น INPUT
Serial.begin(9600); //เริ่มต้อน ใช้งาน Serial monitor
lcd.print("1=");//เเสดงเลข 1 ที่ จอ
lcd.setCursor(0, 1);
lcd.print("2=");//เเสดงเลข 2 ที่ จอ
lcd.setCursor(6, 0);
lcd.print("5=");//เเสดงเลข 5 ที่ จอ
lcd.setCursor(6, 1);
lcd.print("10=");//เเสดงเลข 10 ที่ จอ
lcd.setCursor(12,0 );
lcd.print("T");//เเสดงตัวเลขผลรวมที่ จอ
lcd.setCursor(12,1 );
lcd.print(b);
}
void loop()
{
sensorValue1 = digitalRead(A0); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 1 บาท
sensorValue2 = digitalRead(A1); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 2 บาท
sensorValue5 = digitalRead(A2); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 5 บาท
sensorValue11 = digitalRead(A3); //อ่านค่า สัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 10 บาท
if (sensorValue1 == 0) //ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 1 บาท = 1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
count1++;// นับเพิ่มเหรียญ 1 บาท
/// เเสดงผลการนับ ออกจอ LCD///
lcd.setCursor(2, 0);
lcd.print(count1);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}
else if (sensorValue1 == 0)//ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 2บาท =1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
y = count2+=2;// นับเพิ่มเหรียญ 2บาท
/// เเสดงผลการนับ ออกจอ LCD///
lcd.setCursor(2, 1);
lcd.print(y);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}
else if (sensorValue1 == 0)//ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 5 บาท =1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
x = count5+=5;// นับเพิ่มเหรียญ 5บาท
/// เเสดงผลการนับ ออกจอ LCD///
lcd.setCursor(8, 0);
lcd.print(x);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}else if (sensorValue1 == 0)//ถ้าสัญญาณ ของเซนเซอร์ ของtช่องเหรียญ 5 บาท =1 (มีเหรียญผ่าน)
{
delay(150);// หยุดรอเวาลา 0.11 วินาที
z = count11+=10;// นับเพิ่มเหรียญ 10 บาท
lcd.setCursor(9, 1);
lcd.print(z);
lcd.setCursor(12,0 );
lcd.print("T");
b = count1+y+x+z;/// นำมารวมกับตัวแปร ของเซนเซอร์ ที่นับได้ ของเเต่ละช่อง
lcd.setCursor(12,1 );
lcd.print(b);
}
}