วันอาทิตย์ที่ 16 ธันวาคม พ.ศ. 2555

i-Button keys & LCD with Arduino



i-button keys and LCD by Thai Prosperous IT Co.,Ltd.



จีพีเอสติดตามรถ



แนะนำการเชื่อมต่อระหว่างบอร์ดอาดูโน(arduino)กับอุปกรณ์กุญแจอิเล็กทรอนิกส์และจอแอลซีดี ผู้เขียนได้ดัดแปลงมาจาก http://tushev.org/articles/electronics/35-reading-ibutton-with-arduino สำหรับอุปกรณ์นี้ผู้เขียนจะได้นำไปจัดทำเครื่องอ่านรหัสกุญแจอิเล็กทรอนิกส์เพื่อเชื่อมต่อกับอุปกรณ์จีพีเอสติดตามรถยนต์ที่สามารถรองรับโปรโตคอล 1-wire



1. อุปกรณ์
    1.1 บอร์ด ETT Arduino ATMEGA328
    1.2 บอร์ด ETT LCD 16x2 ผ่านอุปกรณ์ 74HC595
    1.3 อุปกรณ์ i-Button key DS1990A

2. ผังการเชื่อมต่อ
    
จีพีเอสติดตามรถ
                                                                                               
                |


  • i-Button key
    • ต่อสาย DQ จากอุปกรณ์ DS1990A กับพอร์ต PD2 ของ Arduino
    • ต่อสายกราวด์
  •  LCD 74HC595
    • ต่อสาย DS ของไอซี 74HC595 เข้ากับ PD4 ของ Arduino
    •  ต่อสาย ST ของไอซี 74HC595 เข้ากับ PD7 ของ Arduino
    • ต่อสาย SH ของไอซี 74HC595 เข้ากับ PD8 ของ Arduino
    •  ต่อกราวด์และไฟบวกเลี้ยงวงจร LCD บอร์ด




       3.  โปรแกรมทดสอบการทำงาน


#include <LCDHC595.h>
#include <OneWire.h>
// Arduino Pins
#define SIN_PIN 4 // 74HC595 Serial In Pin
#define STR_PIN 7 // 74HC595 Strobe pin
#define CLK_PIN 8 // 74HC595 Clock pin
//Create object to Control LCD.
LCDHC595 lcd = LCDHC595(SIN_PIN, STR_PIN, CLK_PIN);
OneWire ds(2);
//LiquidCrystal lcd(7,6,5,4,3,2);
byte addr[8];
String keyStatus="";
void setup(void) {
Serial.begin(115200);
//lcd.begin(16,2);
lcd.Initial();
lcd.Backlight(1);
}
void loop(void) {
getKeyCode();
lcd.ClearScreen();
lcd.Print("GPS-Vehicle Key:");
if(keyStatus=="ok"){
byte i;
lcd.SetCursor(0x40);
for( i = 5; i >0; i--) {
lcd.Print(" ");
if (addr[i] < 0x10)
{
lcd.Print("0");
}
lcd.Print(addr[i], HEX);
}
}
else if (keyStatus!="")
{
lcd.SetCursor(0x40);
lcd.Print("not DS1990A");
delay(1000);
}
delay(1000);
}
void getKeyCode(){
byte present = 0;
byte data[12];
keyStatus="";
if ( !ds.search(addr)) {
ds.reset_search();
return;
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
keyStatus="CRC invalid";
return;
}
if ( addr[0] != 0x01) {
keyStatus="not DS1990A";
return;
}
keyStatus="ok";
ds.reset();
}
https://gist.github.com/ad4d1f0cf35490119737/download

สรุปการทำงาน เมื่อมีการเสียบอุปกรณ์ DS1990Aเข้ากับเครื่องอ่าน ระบบจะทำการอ่านค่าคีย์ของอุปกรณ์ออกมาแสดงผลบนหน้าจอ LCD

______________________________________________________________________________

จีพีเอสติดตามรถ

บริษัท ไทย พรอสเพอรัส ไอที จำกัด
133/241หมู่ 5ลุมพินีคอนโดทาวน์รัตนาธิเบศร์ ต.บางกระสอ อ.เมือง จ.นนทบุรี11000
มือถือ +66(0)86-804-5952
โทร +66(0)2-149-5009
แฟกซ์ +66(0)2-149-5009
เวบไซต์ http://gps-vehicle.com
Rev 02 2012-12-19
Rev 01 2012-12-16

ไม่มีความคิดเห็น:

โพสต์ความคิดเห็น