Arduino Attiny85/45 เป็น IC Arduino ที่มีขนาดเล็ก 8 ขา มีทั้งแบบ DIP และแบบ SMD ให้ใช้งาน Arduino Attiny85 และ Attiny45 มีการจัดขาและการใช้งานเหมือนกันต่างกันเพียง Attiny85 มีหน่วยความจำ 8K ส่วน Attiny45 มีหน่วยความจำ 4K แต่ราคาต่างกันเพียงเล็กน้อย ในที่นี่เราจะมาลองใช้ Attiny85 กัน ราคาแพงกว่านิดหน่อย แต่ Attiny85มีหน่วยความจำมากกว่า Attiny45 ถึง 2 เท่า ก็เลยต้องเลือก Attiny85
ข้อมูล DataSheet Attiny85 คลิกที่นี่
คลิปนี้สอนแบบละเอียด
คลิปนี้แบบกระชับฉับไว
Attiny85 เป็นไมโครคอนโทรลเลอร์ขนาดเล็ก กินไฟต่ำมาก ตาม Data Sheet ถ้าเป็นโหมด Active รันที่ความเร็ว 1 MHz ที่ไฟ 1.8V จะใช้พลังงานเพียง 300 μA ถ้ารันในโหมด Power-down จะใช้ไฟเพียง 0.1μA น้อยมาก ๆ นอกจาก Attiny85 จะกินไฟต่ำแล้ว Attiny85 รองรับแรงดันไฟฟ้าได้ในช่วง 2.7-5.5 โวลต์ ใส่ถ่าน AA 2 ก้อน Attiny85 ก็ทำงานได้แล้วหรือจะใช้ไฟจากแบตเตอร์รีอื่น ๆ ก็มีให้เลือกได้หลากหลาย
Attiny85 มี 8 ขา ดังแสดงในรูป
Attiny85 มี 8 ขา คือ ขากราวน์ ( ขา 4) ขาไฟบวก (Vcc) ก็ป้อนไฟเข้าที่ขานี้ มีขารีเซตที่ขา 1 ที่เหลืออีก 5 คือขา Pin0-Pin3 คือขา Attiny85 ที่ให้เราใช้งานได้ มีขาให้ใช้งานถึง 5 ขา ถ้างานเป็นเล็ก ๆ ก็ใช้ได้เหลือเฟือเลย โดยความสามารถนี้มีเท่ากับรุ่นพี่ใหญ่ ๆ เลย มีขา Analog สามารถอ่านค่าแปลงเป็น A2D ได้ในตัว 3 ขา มีขา PWM สามารถส่งค่าออกเป็น analog แบบ PWM ได้อีก 2 ขา และขาเหล่านี้ก็เป็นขา Digital ได้อีกด้วย เรียกได้ว่า Attiny85 ถึงจะตัวเล็ก แต่ก็อัดแน่นด้วยความสามารถให้ใช้งานครบถ้วน
Attiny85 นอกจากจะมีขาให้ใช้งานได้แบบ Full option แล้ว ข้างใน Attiny85 ยังมี Crystal มาด้วย แปลว่า เราสามารถเขียนโปรแกรมลงไป แล้วใช้แค่ IC Attiny85 ตัวเดียวไม่ต้องต่ออย่างอื่นเพิ่มเติมก็ทำงานได้แล้ว
สำหรับค่าตัว Attiny85 ถือว่า Attiny85 ราคาถูก มาก ถ้าเทียบกับความสามารถครบถ้วน และยิ่งถ้าเป็นแบบ SMD หรือเซอร์เฟสเมาส์ ก็จะมีขนาดเล็ก และราคาถูกลงไปอีก
เราสามารถใช้ Arduino เขียนโปรแกรมลงไปใน IC Attiny85 ได้ โดยเซตค่าเล็กน้อย สามารถใช้ตัว Programmer เพื่อเบิร์น หรือถ้าไม่มีเครื่องเบิร์น ก็สามารถใช้บอร์ด Arduino Uno หรือบอร์ด Arduino อื่น ๆ ในการเบิร์นโปรแกรมลง IC Attiny85
สำหรับใครที่ไม่เคยทำอาจจะคิดว่าต้องเซตค่ายุ่งยาก แต่ตามจริงแล้วทำได้ง่าย ๆตามขั้นตอนที่จะแนะนำเลยครับ
ขั้นแรก หาตัว Programmer Attiny85
ถ้า Arduino IDE ยังไม่มี บอร์ด Attiny85 ให้เซตค่าก่อน
ขั้นที่ 2 เพิ่มบอร์ด Attiny85 ให้ Arduino IDE
1. ดาวน์โหลดไฟล์จาก https://github.com/damellis/attiny/ หรือคลิกที่ลิงค์นี้ https://github.com/damellis/attiny/archive/master.zip
2. แตกไฟล์ zip ที่โหลดมาไว้ในโฟลเดอร์ที่ชื่อ attiny จากโฟลเดอร์ที่แตกออกมา นำไปวางไว้ที่โฟลเดอร์ hardware ของโปรแกรม Arduino (C:\Users\max\Documents\Arduino\hardware) จะได้ตัวอย่างดังรูป
หลังจากที่ IDE มีบอร์ด Attiny85 แล้วก็จะได้บอร์ด Attiny85 มาเพิ่มแล้ว
ขั้นที่ 3 มาเล่น Arduino Attiny85 กัน
ต่อมาก็มาเขียนและอัพโหลดโปรแกรมลง Attiny85 กันเลย
1. แปลง Arduino Uno ให้เป็นเครื่องโปรแกรมเมอร์สำหรับ Attiny85 หรือเรียกว่า Arduino As ISP โดย เปิด ArduinoISP แล้วอัพโหลดลง Arduino
2. ต่อวงจร Attiny85 ดังรูป
3. อัพโหลด / เบิร์นโปรแกรมลง Attiny85
เราจะมาลองเล่นกันกับ Attiny85 ทั้ง 3 โหมด เพื่อทดสอบการใช้งาน Attiny85
1. ทดสอบ โหมด Digital โดยการสั่งเปิดปิดหลอดไฟ LED ต่อวงจรตามรูป
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 0;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(500); // wait for a second
}
2. ทดสอบ Analog Read / Analog Write โดยการต่อตัวต้านทานปรับค่าได้ เพื่ออ่านค่า Analog เข้ามา
int led = 0;
int vol = 3;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(vol);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 /255.0);
analogWrite(led,voltage);
}
3. ทดสอบ Analog Write โดยส่งค่า Analog ออกมาสั่งให้หรี่ไฟ LED แบบ PWM
ชุดคำสั่งที่รองรับ Arduino Attiny85 มีดังนี้
ขอบคุณข้อมูลอ้างอิงจากเว็บ http://highlowtech.org/?p=1695
อีกตัวอย่างความสามารถของ IC ตัวเล็ก ๆ ใช้กับงานใหญ๋ ๆ กับการทำ attiny85 ขับ LCD + RealTimeClock + Temp
ทำไม่ออก ติดปัญหาตรงไหน โพสถามด้านล่างได้เลย เรายินดีช่วยแนะนำและแก้ปัญหาให้