สวัสดีครับพอดีผมต้องการความช่วยเหลือผมทำเครื่องนับคนเข้าออกต้องการให้มันนับคนเข้าโดยใช้เซ็นเซอร์ 2ตัวโดยต้องผ่านเซ็นเซอร์ตัวแรกและตัวสองให้เพิ่มขึ้นหนึ่ง แต่ถ้าผ่านตัวสองไปตัวหนึ่งให้ลบหนึ่ง แต่ตอนนี้ผ่านตัวไหนก่อนมันก็นับหนึ่ง จนปัญญาจริงๆๆ
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 3 // กำหนดว่าขา CLK ต่ออยู่กับขา D3
#define DIO 2 // กำหนดว่าขา DIO ต่ออยุ่กับขา D2
#define SIG 7
#define SIG2 8
TM1637Display display(CLK, DIO); // เริ่มใช้งานไลบารี่
int i; // ประกาศตัวแปร i เป็นชนิด int เก็บข้อมูลตัวเลขจำนวนเต็ม
void setup()
{
pinMode(SIG,INPUT);
pinMode(SIG2,INPUT);
}
void loop()
{
if (digitalRead(SIG)==HIGH)
{ // ถ้าขาที่ต่อกับ SIG มีสถานะเป็น HIGH;
while((digitalRead(SIG)==HIGH)||(digitalRead(SIG2)==HIGH)); // ให้รอจนกว่าขาที่ต่อกับ SIG เป็น LOW
i++; // เพิ่มค่าในตัวแปร i ขึ้น 1 จำนวน
}
display.print(i); // แสดงผลค่า i ออกทางหน้าจอ 7 Segment
delay(10); // หน่วงเวลา 10mS
}
แนะนำดังนี้ครับ
ให้เขียนโปรแกรมแสดงแต่ละตัว โดยใช้เซนเซอร์แค่ตัวเดียว ทำทีละขั้น
วางเซนเซอร์ 2 ตัว ให้อยู่คนละตำแหน่งทำได้แน่นอน
ถ้าคนเข้าเซนเซอร์ตัวแรกจะได้รับค่าก่อน
ถ้าคนออก เซนเซอร์ตัวที่สองจะได้รับค่าก่อน
ลองทดลองที่ละขั้นตอนตามที่แนะนำจะได้ฝึกการเขียนโปรแกรมครับ