มินิโปรเจค ให้อาหารปลาด้วย arduino

มินิโปรเจค ให้อาหารปลาด้วย 

 arduino




อุปกรณ์


  1. อาดูโน่  R3
  2. โมดูล จอLCD 0x27
  3. คีย์แพด 3x4
  4. เซอร์โว มอเตอร์ SG180
  5. สายไฟ
  6. โฟโต้บอร์ด (ขนาดเล็ก)
  7. ไม้อัด
  8. น็อต ผู้+เมีย
  9. กาว
  10. เคเบิ้ลไทล์

ตัวอย่างการต่อ








ตัวอย่าง "ชิ้นงานจริงหลังจากประกอบเสร็จ"













บล็อกไดอะแกรม









ตัวอย่างโค้ด


#include <Keypad.h> เรียกใช้ไลบารี่ #include <Servo.h> เรียกใช้ไลบารี่
#include <Wire.h> เรียกใช้ไลบารี่ #include <LiquidCrystal_I2C.h> เรียกใช้ไลบารี่ LiquidCrystal_I2C lcd(0x27,16,2); กำหนดขนาดจอLCD Servo myservo; ประกาศเรียกใช้ Servo myservo จากไลบารี่ int pos = 0; ตัวแปร เท่ากับ 0 char customKey; ประกาศตัวแปรcustomkey const byte ROWS = 4; การประกาศตัวแปร ROWS ไว้ที่ขา4
const byte COLS = 4; การประกาศตัวแปร COLS ไว้ที่ขา4 char keys[ROWS][COLS] = { ประกาศตัวแปร อาเร {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte rowPins[ROWS] = {2, 3, 4, 5}; กำหนดขา 2 3 4 5 byte colPins[COLS] = {6, 7, 8}; กำหนดขา 6 7 8 Keypad customKeypad ( makeKeymap(keys), rowPins, colPins, ROWS, COLS); //initialize an คือคำสั่งพิเศษ คีลแพด

instance of class NewKeypad int Kill = 0; ประกาศตัวแปร เท่ากับ 0

void setup() {
myservo.attach(9); กำหนดขาที่ 9 Serial.begin(9600); กำหนดค่าเริ่มต้น9600 lcd.begin(); กำหนดค่าเริ่มต้นLCD lcd.setBacklight(255); คือกำหนดแสงที่จอ LCD lcd.print("Kitsada 01"); คือ การแสดงผล lcd.setCursor(0, 1); เซต ตำแหน่ง 0,1 lcd.print("witsarut 16"); คือ การแสดงผล delay(3000); สั่งรีเลย์ เท่ากับ 3วิ lcd.clear(); คือ ลบผลจอ lcd

pos = 8000; ค่าตัวแปร เท่ากับ 8000 lcd.setCursor(5, 0); เซต ตำแหน่งคำ 5,0 lcd.print("Mode 1"); คือ การแสดงผลจอ lcd.setCursor(5, 1); เซตตำแหน่งคำ 5,1 lcd.print("5 ms"); แสดงผลจอ5 ms } void loop() { static unsigned long Time = millis(); คือ กำหนดTime เท่ากับ ค่าเวลา

customKey = customKeypad.getKey(); customkey รับค่าจากคีย์แพด

if (customKey){ ถ้ามี การกดที่คีย์แพดจะแสดงออกมาที่จอมอนิเตอร์ Serial.println(customKey); }

if (customKey == '1'){ ถ้า coustomkey เท่ากับ 1 pos = 8000; pos เท่ากับ 8000 Kill = 1; kill เท่ากับ 1 คือตัวตั้งค่าโหมด 1 lcd.setCursor(5,0); เซตค่าตำแหน่งแถวที่ 5บรรทัด0 lcd.print("Mode 1"); แสดงคำนี้ออกไป 1 lcd.setCursor(5, 1); เซตค่าตำแหน่งแถวที่ 5บรรทัด1 lcd.print("5 ms"); แสดง5 ms }
if (customKey == '2'){ ถ้าcustomkey เท่ากับ 2 pos = 13000; pos เท่ากับ 13000 Kill = 2; kill เท่ากับ 2 คือการตั้งค่าโหมด 2 lcd.setCursor(5, 0);; เซตค่าตำแหน่งแถวที่ 5 บรนทัดที่0 lcd.print("Mode 2"); แสดงคำนี้ออกไป 2 lcd.setCursor(5, 1);; เซตค่าตำแหน่งแถวที่5 บรรทัดที่1 lcd.print("10 ms"); แสดง 10ms }
if (customKey == '3'){ ถ้าcustomkey เท่ากับ 3 pos = 23000; posเท่ากับ 23000 Kill = 3; kill เท่ากับ 3 คือการตั้งค่าโหมด 3 lcd.setCursor(5, 0); เซตค่าตำแหน่งแถวที่ 5 บรรทัดที่0 lcd.print("Mode 3"); แสดงคำนี้ออกไป 3 lcd.setCursor(5, 1);; เซตค่าตำแหน่งแถวที่5 บรรทัดที่1 lcd.print("20 ms"); แสดง 20ms }

if((millis()-Time)>pos){ ถ้า millis ลบกับ time แล้วมากกว่า pos คำสั่งที่ตั้งไว้ก้จะทำงาน หรือ ถ้าเวลาถึงค่าของ pos ก็จะทำงาน
Time = millis(); Time เท่ากับ mills หรือค่าเวลา myservo.write(0); คือคำสั่งให้มอเตอร์ หมุน0 องศา delay(3000); รีเลย์ เท่ากับ 3วิ }

else{ ถ้าคำสั่ง if ไม่เป็นจริง myservo.write(90); คือคำสั่งให้มอเตอร์ หมุน90 องศา } }



วีดีโอตัวอย่าง "การทำงาน"




ลิงก์วีดีโอ: https://youtu.be/QJgBY-XWTZ0


ช่ื่อผู้จัดทำ

  1. นายกฤษฎา แหยมนุช
  2. นายวิทษรุจน์ คงอ่วมท่างาม

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ความรู้เบื้องต้นเกี่ยวกับไมโครคอนโทรลเลอร์

โปรเจค งานเครื่องกระปุกออมสินนับเงินอัตโนมัติ