สารบัญ:

3 ของขวัญวันหยุด ATTiny ง่ายๆ: 4 ขั้นตอน
3 ของขวัญวันหยุด ATTiny ง่ายๆ: 4 ขั้นตอน

วีดีโอ: 3 ของขวัญวันหยุด ATTiny ง่ายๆ: 4 ขั้นตอน

วีดีโอ: 3 ของขวัญวันหยุด ATTiny ง่ายๆ: 4 ขั้นตอน
วีดีโอ: ได้มาบ้าน เอมี่-ซี ซะที! ตอนแรกก็ดี หลังๆเริ่มเละ | Bradboy 2024, พฤศจิกายน
Anonim
3 ของขวัญวันหยุด ATTiny ง่าย ๆ
3 ของขวัญวันหยุด ATTiny ง่าย ๆ

ทุก ๆ ปีเทศกาลวันหยุดหมุนไปรอบ ๆ และฉันติดอยู่กับสิ่งที่จะให้สำหรับเพื่อนและครอบครัวของฉัน ผู้คนมักพูดว่าทำของขวัญด้วยตัวเองดีกว่าซื้อที่ร้านค้า ปีนี้ฉันจึงทำอย่างนั้น ครั้งแรกแสดงชื่อหรือภาพพื้นฐานเมื่อโบกมือผ่านอากาศ ครั้งที่สองจางหายไปอย่างราบรื่นระหว่างไฟ LED สีขาวสองดวง (นอกจากนี้ยังมีหมุดนิรภัยสำหรับติดไว้กับเสื้อผ้าหรือกระเป๋าเงิน) และที่สามเป็นแสงอารมณ์แปลก ๆ เลื่อน ระหว่างสีได้อย่างลงตัว ทั้งหมดมีราคาต่ำกว่า 15 เหรียญและประกอบง่ายภายในเวลาไม่ถึงชั่วโมง คุณยังสามารถให้คำแนะนำเหล่านี้รวมถึงชิ้นส่วนต่างๆ เป็นของขวัญให้กับผู้ที่สนใจเรียนเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์

หมายเหตุ: ถือว่ามีระดับพื้นฐานของการบัดกรี อย่างไรก็ตาม ไม่เหมือนคำแนะนำก่อนหน้าของฉัน ฉันจะกลบเกลื่อนวิธีการตั้งโปรแกรม AVR ฉันหวังเป็นอย่างยิ่งว่าสิ่งนี้จะช่วยให้ผู้ที่พยายามเริ่มต้นใช้งานอุปกรณ์อิเล็กทรอนิกส์ ฉันจำได้เมื่อฉันอยู่ที่นั่นและยินดีที่จะตอบคำถามที่คุณอาจมี จำไว้ว่าไม่มีคำถามโง่ ๆ ! ฉันได้ปล่อยให้คุณเปิดกว้างเพื่อกำหนดว่าคุณจะจัดวางแผงวงจรของคุณอย่างไรโดยหวังว่าคุณจะคิดวิธีใหม่ในการแสดงวงจรง่ายๆที่ฉันวาดออกมา กรุณาโพสต์รูปภาพเมื่อคุณทำเสร็จแล้ว ฉันแทบรอไม่ไหวที่จะได้เห็นสิ่งที่คุณคิด!อะไหล่สำหรับโครงการทั้งหมด N = จำนวนโครงการ x N ATTiny45 (www.digikey.com) x N ซ็อกเก็ต DIP 8 ขา (RadioShack) x 1 บอร์ด Perf ขนาดใหญ่ (ฉันได้ของฉันที่ RadioShack) x N 3v Coin Cell Battery และผู้ถือ (RadioShack) x1 โปรแกรมเมอร์ (ฉันใช้สิ่งนี้และ makefile ที่ให้มาจะได้รับการกำหนดค่าให้ใช้อันนี้) x2 N Resistors หนึ่ง 10 โอห์ม และ 10k ohm (RadioShack) หนึ่งรายการ นี่คือรูปภาพของสามโครงการที่เสร็จสมบูรณ์:

ขั้นตอนที่ 1: ชื่อ Flasher

ชื่อ Flasher
ชื่อ Flasher
ชื่อ Flasher
ชื่อ Flasher
ชื่อ Flasher
ชื่อ Flasher

ส่วนอื่นๆ x5 DIFFUSED 3mm LEDs (RadioShack) โปรเจ็กต์นี้ใช้การคงอยู่ของการมองเห็นเพื่อแสดงภาพหรือข้อความเมื่อเคลื่อนที่อย่างรวดเร็ว มันทำงานได้ดีขึ้นเมื่ออยู่ในที่มืด ด้วย AVR เรากำลังสลับไปมาระหว่าง LED ที่เร็วขึ้น จากนั้นตาจะเห็นว่าเราสามารถสร้างภาพในอากาศได้ด้วยส่วนประกอบเพียงเล็กน้อย รหัส: (ดาวน์โหลดไฟล์.zip ที่ด้านล่างของหน้าสำหรับรหัส makefile ฯลฯ (รหัสนั้นไม่มีความคิดเห็นมากมายที่รหัสนี้มีอยู่ แต่ถ้ารหัสนี้ใช้ไม่ได้ ให้ลองใช้รหัสใน zip)) #define F_CPU 1000000 #include #include void dispClear () { PORTB = ~0b00000000; } int main () { DDRB = 0xFF; // สำหรับผู้ที่ไม่เคยอ่าน C ก่อนเครื่องหมายทับสองครั้งแสดงว่ามีความคิดเห็น สิ่งนี้กำหนดพินของ avr เป็นถ่านเอาต์พุต x = 10; //x ใช้เพื่อตั้งค่าการหน่วงเวลา การเพิ่มค่าจะทำให้การสลับระหว่างพิกเซลช้าลง ลดลง ในขณะที่ (1) // ในขณะที่ (เงื่อนไขเป็นจริง); {ทำเช่นนี้} (จริงใน C คือ 1) { PORTB = ~0b00010001; // เพื่อนของฉันชื่อ Zoe ดังนั้นฉันจึงดึงตัวละครบนกระดาษกราฟแล้วใส่ลงใน PORTB ศูนย์สามตัวแรกไม่สำคัญเพราะมีเพียงห้า led ที่เชื่อมต่อกัน หนึ่งในห้าช่องว่างที่เหลือบ่งชี้ว่า LED เปิดอยู่ เป็นศูนย์ ปิดอยู่ _delay_ms(x); //ล่าช้าเป็นมิลลิวินาที PORTB = ~0b00010011; _delay_ms(x); PORTB = ~0b00010101; _delay_ms(x); PORTB = ~0b00011001; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x); dispClear(); //เปิดช่องว่างระหว่างอักขระ _delay_ms(x); PORTB = ~0b00001110; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x*3); PORTB = ~0b00001110; _delay_ms(x); dispClear(); _delay_ms(x); PORTB = ~0b00011111; _delay_ms(x); PORTB = ~0b00010101; _delay_ms(x); PORTB = ~0b00010001; _delay_ms(x); dispClear(); _delay_ms(x*5); // คำนี้ทำเพื่อความชัดเจน ฉันมีพื้นที่ระหว่างคำที่ใหญ่กว่า } } ตอนนี้ ทำตามคำแนะนำในหน้า 4 เพื่อรวบรวมรหัสนี้และส่งไปยัง AVR ของคุณ

ขั้นตอนที่ 2: The Purse Light

แสงกระเป๋า
แสงกระเป๋า
แสงกระเป๋า
แสงกระเป๋า

ส่วนอื่นๆ x2 LED's NON DIFFUSED (RadioShack) โปรเจ็กต์นี้จะค่อยๆ จางหายไประหว่าง LED สองดวง แม่ของฉันอยากได้อะไรติดกระเป๋าไว้เพื่อช่วยเธอเห็นผึ้งตอนกลางคืน ฉันรู้สึกว่าไฟจักรยานกะพริบจะดึงดูดความสนใจมากเกินไป ฉันจึงทำสิ่งนี้ ใช้ PWM (Pulse Width Modulation) เพื่อให้เอฟเฟกต์การหรี่แสงและความสว่าง สิ่งที่เกิดขึ้นจริงคือไฟ LED กะพริบเร็วกว่าที่ตามองเห็นในช่วงเวลาต่างๆ กันเพื่อจำลองการเปลี่ยนแปลง คุณสามารถเห็นสิ่งนี้ได้ชัดเจนยิ่งขึ้นเมื่อคุณโบกมือบนใบหน้าของคุณเหมือนกับที่คุณทำกับ Name Flasher สามารถดาวน์โหลดรหัสได้ที่ส่วนท้ายของหน้านี้ ดูหน้า 4 เกี่ยวกับวิธีการคอมไพล์ไปยัง AVR ของคุณ แทนที่จะแสดงความคิดเห็นโค้ดที่นี่ ฉันจะอธิบายแนวคิดสั้นๆ PWM ถูกสร้างขึ้นโดยตัวจับเวลา แต่ละรอบนาฬิกาจับเวลานับขึ้นหนึ่ง เมื่อถึงค่าหนึ่ง (ในกรณีนี้ OCR1B) จะเปลี่ยนสถานะของพิน (ในกรณีนี้คือ OC1B) เพื่อให้ไฟ LED "ปิด" ฉันได้ต่อสายอีกอันหนึ่งเข้ากับ [OPPOSITE]OC1B (นั่นคือสิ่งที่แถบด้านบนหมายถึง) จากนั้นเราใช้ x เพื่อเพิ่มและลดระยะเวลาในการเปิด LED

ขั้นตอนที่ 3: ตัวเลื่อนสี

ตัวเลื่อนสี
ตัวเลื่อนสี
ตัวเลื่อนสี
ตัวเลื่อนสี

อื่น ๆ Partsx1 RGB LED (กระจายจะดีกว่า) (RadioShack) สำหรับฉันนี้เป็นแบบคลาสสิก ฉันหลงใหลในแสงไฟแบบนี้มาโดยตลอดและพบว่ามันสงบมาก ฉันจึงอยากจะสร้างมันขึ้นมาโดยธรรมชาติ การมองเห็นของพวกเขาในสังคมทำให้พวกเขามีปัจจัย WOW ที่แท้จริง “คุณทำอย่างนั้นเหรอ!” รหัสเกือบจะเหมือนกันและในความคิดของฉันอ่านง่ายกว่า คุณสามารถดาวน์โหลดได้ที่ด้านล่าง คราวนี้เราจัดเตรียมพิน PWM สำหรับพินกราวด์แต่ละอันบน RGB LED ด้วยวิธีนี้เรากราวด์ผ่านชิป โวลต์สามารถวัดได้เป็นความแตกต่างระหว่างจุดสองจุด 3v-0v=3v 5v-2v=3v ***3v-3v=0v*** ตัวอย่างสุดท้ายนี้คือสิ่งที่เราทำเมื่อเรากราวด์ผ่านชิป เมื่อมีสามโวลต์ทั้งสองด้าน จะบอกว่ามีโวลต์ไม่เพียงพอที่จะขับเคลื่อน LED ดังนั้นเพื่อให้จางลงระหว่างสี เราจึงเลือกสีและสีอื่น ตั้งค่าหนึ่งเท่ากับ x และอีกอันหนึ่งเท่ากับ 255-x หรือ INVERSE ของ x เหมือนที่เราทำในโปรเจ็กต์ที่แล้ว ไปที่ขั้นตอนที่ 4 เพื่อตั้งโปรแกรม

ขั้นตอนที่ 4: การเขียนโปรแกรม

การเขียนโปรแกรม
การเขียนโปรแกรม

ขั้นแรกให้ดาวน์โหลดและติดตั้ง Emacs, avr-gcc และ Avrdude และการอ้างอิงใดๆ ที่พวกเขาอาจมี บน Arch linux ฉันทำสิ่งนี้ด้วย: sudo pacman -Sy emacs avrdude

ตอนนี้ได้เวลาเชื่อมต่อโปรแกรมเมอร์ของคุณกับ avr แล้ว ต่อหมุดบนโปรแกรมเมอร์ ISP 6 พิน (ภาพด้านล่าง) เข้ากับหมุดที่สอดคล้องบน AVR ของคุณ (เอกสารข้อมูล หน้า 2) (ฉันทำสิ่งนี้บนเขียงหั่นขนม) ตอนนี้เสียบโปรแกรมเมอร์เข้ากับคอมพิวเตอร์ของคุณและแตะด้านบนของ AVR อย่างรวดเร็ว ถ้ามันร้อน ให้ลบโปรแกรมเมอร์ออกจากคอมพิวเตอร์ของคุณทันที ตรวจสอบการเชื่อมต่อของคุณและลองอีกครั้ง (เปิดเครื่องและ Gnd ย้อนกลับ?) หากไม่ร้อน ให้เปิด emacs แล้วกด Ctl-x Ctl-f เพื่อค้นหาไฟล์.c เปิดแล้วกด Meta(Usuly Alt)-x แล้วพิมพ์คอมไพล์ กด Enter สองครั้ง และถ้าคุณโชคดี AVR ของคุณควรรันโค้ดของคุณแล้ว! ขอบคุณที่อ่าน! ฉันหวังว่าคุณจะสนุกกับมันและเรียนรู้บางสิ่ง โปรดอย่าลังเลที่จะถามคำถามและอย่าลืมโพสต์ภาพสิ่งที่คุณคิดขึ้น สุขสันต์วันหยุดและอย่าลืมลงคะแนน!

แนะนำ: