คือผมมีปัญหาในการเขียนโค้ด Arduino คือผมเอาตัวเซ็นเซอร์อินฟาเรตมาเป็น Input ในการนับจำนวนโดยแสดงผลที่จอ LCD โดยการให้นับ1-20 แต่ติดปัญหาที่ เมื่อผมเอามือไปบังค้างไว้แล้ว มันนับจำนวนตลอด 1-20 คือผมจะเอาไปทำโปรเจ็คก็คือ เครื่องนับจำนวนสินค้าอัตโนมัติ ที่ทำให้เกิดความแม้นยำในการนับ แต่ถ้าสมมุตินะถ้าของชิ้นใหญ่ๆหรือยาวๆ ทั้งๆของก็มีชิ้นเดียว แต่มันนับ 1-5 อะไรประมานนี้ T^T ช่วยแก้ให้ผมหน่อยนะครับ ใครเชียวชาญเรื่องเขียนโค้ด คือผมอยากให้มันนับ ชิ้น ต่อ ชิ้น ไม่ใช่ 1ชิ้น นับ ได้เป็น4-5ชิ้น
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define BACKLIGHT_PIN 3
int sensor = 7; // ประกาศตัวแปลเป็น Sensor
int relay1 = 12; // ประกาศตัวแปลเป็น Relay
int x = 0;
int i = 0;
LiquidCrystal_I2C lcd(I2C_ADDR,2,1,0,4,5,6,7);
void setup()
{
lcd.begin (16,2); // ขนาดหน้าจอ LCD
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH); // แสงของหน้าจอ LCD ติด
pinMode(relay1,OUTPUT);
pinMode(sensor,INPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(relay1, 1);
x = digitalRead(sensor); // อ่านค่าจากขา Digital(7)
lcd.setCursor(5,0); // ไปที่ตัวอักษรที่ 5 แถวที่ 1
lcd.print("Product"); // แสดงผลคำว่า Product
lcd.setCursor(3,1); // ไปที่ตัวอักษรที่ 3 แถวที่ 2
lcd.print("Value = "); // แสดงผลคำว่า Product
lcd.setCursor(11,1); // ไปที่ตัวอักษรที่ 11 แถวที่ 2
lcd.print(i); // แสดงค่าของขา Digital ออกหน้าจอ
Serial.println(i);
delay(500);
if (x==0)
{
i = i+1;
}
if (i>20)
{
digitalWrite(relay1, 0);
delay(6000);
digitalWrite(relay1, 1);
lcd.setCursor(12,1); // ไปที่ตัวอักษรที่ 12 แถวที่ 2
lcd.print(" "); // แสดงผลคำว่า Product
(i = 0);
}
}
ช่วยแก้ปัญหาการเขียนโค้ด เกี่ยวการนับจำนวน Arduino หน่อยครับ
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define BACKLIGHT_PIN 3
int sensor = 7; // ประกาศตัวแปลเป็น Sensor
int relay1 = 12; // ประกาศตัวแปลเป็น Relay
int x = 0;
int i = 0;
LiquidCrystal_I2C lcd(I2C_ADDR,2,1,0,4,5,6,7);
void setup()
{
lcd.begin (16,2); // ขนาดหน้าจอ LCD
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH); // แสงของหน้าจอ LCD ติด
pinMode(relay1,OUTPUT);
pinMode(sensor,INPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(relay1, 1);
x = digitalRead(sensor); // อ่านค่าจากขา Digital(7)
lcd.setCursor(5,0); // ไปที่ตัวอักษรที่ 5 แถวที่ 1
lcd.print("Product"); // แสดงผลคำว่า Product
lcd.setCursor(3,1); // ไปที่ตัวอักษรที่ 3 แถวที่ 2
lcd.print("Value = "); // แสดงผลคำว่า Product
lcd.setCursor(11,1); // ไปที่ตัวอักษรที่ 11 แถวที่ 2
lcd.print(i); // แสดงค่าของขา Digital ออกหน้าจอ
Serial.println(i);
delay(500);
if (x==0)
{
i = i+1;
}
if (i>20)
{
digitalWrite(relay1, 0);
delay(6000);
digitalWrite(relay1, 1);
lcd.setCursor(12,1); // ไปที่ตัวอักษรที่ 12 แถวที่ 2
lcd.print(" "); // แสดงผลคำว่า Product
(i = 0);
}
}