ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

ึดึงเวลามาคำนวน

Mos

ผมอยากทำตัวจับเวลาแล้ว ดึงเวลามา คำนวน ทำยังไงอะคับ ช่วยแนะนำผมหน่อยคับ

โค้ดนี้แสดงเวลาได้ แต่ เวลาเอาไปคำนวน คำตอยที่ได้วันยังไม่ใช่อะคับ

ก็คือ เมือเรารันโปรแกรมแต่ยังไม่กดปุ่มจับเวลา เวลามันก็เดินไปเอง คือมันเอาเวลาที่เดินไปก่อนนั้นมาคำนวนอะคับ
,เวลากดปุ่มเริ่มจับเวลาเเสดงปกตินะคับ,

#include <Keypad.h> 

#include <LiquidCrystal.h> 

 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const byte numRows= 4; 

const byte numCols= 4;

unsigned long previousTime = 0;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const byte numRows= 4; 

const byte numCols= 4;

unsigned long previousTime = 0;

char keymap[numRows][numCols]=

{

{'1', '2', '3', 'A'},

{'4', '5', '6', 'B'},

{'7', '8', '9', ' '},

{' ', '0', ' ', ' '}

};

 

byte rowPins[numRows] = {A3 ,A2 ,A1 ,A0}; //connect to row pinouts 

byte colPins[numCols] = {9, 8, 7, 6}; //connect to column pinouts

Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

 

void setup()

{

lcd.begin(16,2);

}

void loop()

{

  unsigned long showTime = millis();

char key = myKeypad.getKey(); // ตัวแปร key เป็นตัวแปรแบบ char รับค่าการกดปุ่ม

if (key != NO_KEY && key != 'A' && key != 'B' && key != ' ') //เมื่อกดปุ่ม (เฉพาะเลข 0 - 9) ค่า setTime จะเท่ากับปุ่มที่กด

{

//setTime = (key ); //นำค่า key ที่ได้มาลบกับ 48 เนื่องจากเป็นรหัส ascii48 ที่เลข 0 จะเริ่มที่ 48

Serial.print(key);

}

if(key == 'A') //เมื่อกดปุ่ม A ตัวแปร start จะเท่ากับ 1 และค่า previousTime สุดท้ายจะเท่ากับ showTime ณ ตอนนั้น

{

start = 1;

previousTime = showTime;

Serial.print("Start...");

}

if(key == 'B') //เมื่อกดปุ่ม B ทุกอย่างจะถูกหยุด 

{

int ans;  

start = 0;

//buzzer = 0;

previousTime = 0;

ans=(((showTime - previousTime) / 1000)/2);

lcd.setCursor(0,1);

//lcd.print("Stop!...\n");

lcd.print(ans);

}

if(start == 1) //เมื่อ start = 1 จะเป็นการวน loop จับเวลาไปเรื่อยๆ จนกว่าจะครบกำหนด

{

lcd.setCursor(0,0);

lcd.print((showTime - previousTime) / 1000);

}

}

QUOTE 
ความคิดเห็นที่ #11
เจ้าของร้าน

ตามที่แนะนำไปแล้วครับ ลองศึกษาโคดที่เขียนก่อนนะครับ

แสดงความคิดเห็นที่ 11-11 จากทั้งหมด 11 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม