สารบัญ:
วีดีโอ: เปลี่ยนสี LED โดยใช้ POT และ ATTINY85: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ในโครงการนี้ เราใช้โพเทนชิออมิเตอร์ (POT) เพื่อเปลี่ยนสีใน LED โดยใช้ ATTINY85
คำจำกัดความบางอย่าง -
โพเทนชิออมิเตอร์เป็นอุปกรณ์ที่มีสกรูขนาดเล็ก / กลไกการหมุนซึ่งเมื่อหมุนแล้วจะมีความต้านทานไฟฟ้าต่างกัน คุณสามารถเห็นได้จากรูปภาพที่มีคำอธิบายประกอบด้านบนว่า POT มี 3 พิน คือ +, - และเอาต์พุต POT ใช้พลังงานจากการเชื่อมต่อพิน + และ - กับ vcc และกราวด์ตามลำดับบนแหล่งจ่ายไฟ เมื่อหมุนสกรู POT ความต้านทานเอาต์พุตจะเปลี่ยนและทำให้ LED ลดหรือเพิ่มความเข้ม. กล่าวอีกนัยหนึ่งมันเป็นตัวต้านทานแบบปรับค่าได้ ใช้ในสิ่งต่าง ๆ เช่นหรี่ไฟบ้าน
LED - เป็นแสงขนาดเล็กที่ส่องสว่างเมื่อกระแสไฟฟ้าไหลผ่าน ในกรณีนี้ เราจะใช้ LED หลากสีซึ่งมี 3 พิน หนึ่งกราวด์ (กลาง) และ 2 พินที่แสดงสีเขียวและสีแดงตามลำดับเมื่อถูกกระตุ้น
ATTINY85 - นี่คือไมโครชิปราคาประหยัดขนาดเล็กซึ่งคุณสามารถตั้งโปรแกรมได้เหมือน Arduino
ภาพรวม - เอาต์พุตจาก POT เชื่อมต่อกับ ATTINY85 เมื่อหมุนสกรู POT ค่าความต้านทานที่ต่างกันจะออกมาเป็นตัวเลขระหว่าง 0 ถึง 255 ATTINY สามารถวัดค่านี้และดำเนินการต่างกันไปตามค่าความต้านทาน POT ในกรณีนี้เราได้ตั้งโปรแกรมให้เชื่อมต่อกับ LED ดังนี้
หากตัวเลขมากกว่า 170 ให้เปลี่ยน LED เป็นสีเขียว
หากตัวเลขน้อยกว่า 170 แต่มากกว่า 85 ให้เปลี่ยน LED เป็นสีแดง
ถ้าจำนวนน้อยกว่า 85 เปิด LED สีเขียวและสีแดงซึ่งส่งผลให้ ORANGE
บอม
LED 1 x 3 ขา1 x ATTINY 85
1 x หม้อ (B100K)
1 x เขียงหั่นขนมและสายเคเบิล
1 แหล่งจ่ายไฟ
ขั้นตอนที่ 1: การเขียนโปรแกรม ATTINY85
ในแง่ของการเขียนโปรแกรม ATTINY85 โปรดดูคำแนะนำก่อนหน้าของฉัน -
รหัสแสดงอยู่ด้านล่าง บางจุดที่ควรทราบคือมีการเชื่อมต่อพิน ATTINY สองพิน, PB3, พินจริง 2, PB2, พินจริง 7 ในโหมดดิจิทัล กับ LED เพื่อให้เกิดการเปลี่ยนสี ATTINY พิน PB4 พินจริง 3 เชื่อมต่อกับ POT ในโหมดอะนาล็อก ซึ่งหมายความว่าสามารถอ่านค่าระหว่าง 0 ถึง 254 ได้ ฉันปรับแต่งโค้ดที่พบบนอินเทอร์เน็ต ดังนั้นฉันจึงรับทราบการทำงานนั้น -
โมฆะ initADC () { // *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ============== ================================================= ============================== // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [1]* [8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) // * ** (PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/ DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0) // *** //pb4 - อินพุตสำหรับ POT //pb3 led pin 1 //pb2 led pin 3 // ATTINY 85 ตั้งค่าความถี่ภายใน 8 MHz /* ฟังก์ชันนี้จะเริ่มต้น ADC
ADC Prescaler หมายเหตุ:
ต้องตั้งค่า ADC Prescaler เพื่อให้ความถี่อินพุต ADC อยู่ระหว่าง 50 - 200kHz
สำหรับข้อมูลเพิ่มเติม โปรดดูตารางที่ 17.5 "ADC Prescaler Selections" ในบทที่ 17.13.2 "ADCSRA – ADC Control and Status Register A" (หน้า 140 และ 141 ในแผ่นข้อมูล ATtiny25/45/85 ฉบับสมบูรณ์, Rev. 2586M–AVR–07/ 10)
ค่าพรีสเกลเลอร์ที่ถูกต้องสำหรับความเร็วสัญญาณนาฬิกาต่างๆ
นาฬิกา ค่าพรีสเกลเลอร์ที่มีจำหน่าย --------------------------------------- 1 MHz 8 (125kHz), 16 (62.5kHz) 4 MHz 32 (125kHz), 64 (62.5kHz) 8 MHz 64 (125kHz), 128 (62.5kHz) 16 MHz 128 (125kHz)
ตัวอย่างด้านล่างตั้งค่า prescaler เป็น 128 สำหรับ mcu ที่ทำงานที่ 8MHz
(ตรวจสอบแผ่นข้อมูลสำหรับค่าบิตที่เหมาะสมในการตั้งค่าพรีสเกลเลอร์) */
// ความละเอียด 8 บิต
// ตั้งค่า ADLAR เป็น 1 เพื่อเปิดใช้งานผลลัพธ์ Left-shift (มีเฉพาะบิต ADC9.. ADC2 เท่านั้น) // ดังนั้น การอ่าน ADCH เท่านั้นจึงเพียงพอสำหรับผลลัพธ์ 8 บิต (256 ค่า) DDRB |= (1 << PB3); // พินถูกตั้งค่าเป็นเอาต์พุต DDRB |= (1 << PB2); // พินถูกตั้งค่าเป็นเอาต์พุต ADMUX = (1 << ADLAR) | // ผลการเลื่อนซ้าย (0 << REFS1) | // ชุดอ้างอิง แรงดันไฟฟ้าเป็น VCC บิต 1 (0 << REFS0) | // ชุดอ้างอิง แรงดันไฟฟ้าเป็น VCC บิต 0 (0 << MUX3) | // ใช้ ADC2 สำหรับอินพุต (PB4), MUX บิต 3 (0 << MUX2) | // ใช้ ADC2 สำหรับอินพุต (PB4), MUX บิต 2 (1 << MUX1) | // ใช้ ADC2 สำหรับอินพุต (PB4), MUX บิต 1 (0 << MUX0); // ใช้ ADC2 สำหรับอินพุต (PB4), MUX บิต 0
ADCSRA =
(1 << เอเดน) | // เปิดใช้งาน ADC (1 << ADPS2) | // ตั้งค่าพรีสเกลเลอร์เป็น 64, บิต 2 (1 << ADPS1) | // ตั้งค่าพรีสเกลเลอร์เป็น 64, บิต 1 (0 << ADPS0); // ตั้งค่าพรีสเกลเลอร์เป็น 64, บิต 0 }
int หลัก (เป็นโมฆะ)
{ initADC();
ในขณะที่(1)
{
ADCSRA |= (1 << ADSC); // เริ่มการวัด ADC ในขณะที่ (ADCSRA & (1 << ADSC)); // รอจนการแปลงเสร็จ
ถ้า (ADCH > 170)
{ PORTB |= (1 << PB3); //ปักหมุดไว้ที่สูง PORTB |= (1 << PB2); //ปักหมุดไว้ที่สูง } else if (ADCH 85) { PORTB |= (1 << PB3); //ปักหมุดไว้ที่สูง PORTB &= ~(1 << PB2); //ปักหมุดไว้ที่ LOW
} อื่น {
PORTB |= (1 << PB2); //ปักหมุดไว้ที่สูง PORTB &= ~(1 << PB3); //ปักหมุดไว้ที่ LOW
}
}
กลับ 0;
}
ขั้นตอนที่ 2: วงจร
หมุด ATTINY
PB3, พินจริง 2 - พิน LED ที่เชื่อมต่อ 1
PB4, พินจริง 3, เชื่อมต่อกับพินกลาง POT
GND พินจริง 4 เชื่อมต่อกับรางลบ - แหล่งจ่ายไฟ
PB2, พินจริง 7 - พิน LED ที่เชื่อมต่อ 3
VCC, พินกายภาพ 8, เชื่อมต่อกับรางบวก - แหล่งจ่ายไฟ
หม้อ
ขา pos และ neg เชื่อมต่อกับรางตามลำดับ - แหล่งจ่ายไฟ
นำ
ขากลางเชื่อมต่อกับรางลบ - แหล่งจ่ายไฟ
ฉันทดลองโดยใช้แหล่งจ่ายไฟ 3 และ 3.3 โวลต์และทั้งคู่ก็ใช้งานได้
ขั้นตอนที่ 3: บทสรุป
ความสามารถของ ATTINY85 ในการสลับไปมาระหว่างโหมดอนาล็อกและดิจิตอลนั้นทรงพลังมาก ขับมอเตอร์ความเร็วตัวแปรและสร้างโน้ตดนตรี ฉันจะสำรวจสิ่งนี้ในคำแนะนำในอนาคต ฉันหวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์
แนะนำ:
ไฟ LED เปลี่ยนสี: 13 ขั้นตอน
LED เปลี่ยนสี: ฉันได้รับมอบหมายให้สร้างต้นแบบโดยใช้เซ็นเซอร์บางประเภทเพื่อสร้างเอาต์พุต ฉันตัดสินใจใช้โฟโตเซลล์ซึ่งวัดปริมาณแสงในสภาพแวดล้อม และไฟ LED RGB เป็นเอาต์พุต ฉันรู้ว่าฉันต้องการรวมความสามารถของ LED
ไฟวงแหวน LED เปลี่ยนสี: 11 ขั้นตอน
ไฟวงแหวน LED เปลี่ยนสี: วันนี้เราจะทำไฟวงแหวน LED เปลี่ยนสีขนาด 20 นิ้ว ฉันรู้ว่าไฟวงแหวนโดยทั่วไปจะมีรูปทรงเป็นวงกลม แต่อันนี้จะเป็นสี่เหลี่ยมจัตุรัสเพื่อทำให้สิ่งต่างๆ ง่ายขึ้นเล็กน้อย โปรเจ็กต์ขนาดเล็กนี้มีไว้สำหรับช่างภาพที่ต้องการงบประมาณเป็นหลัก
เปลี่ยนสี: 14 ขั้นตอน (พร้อมรูปภาพ)
Metamorphic Color: เม็ดสี Theromochromic เป็นสีย้อม Leuco ที่เปลี่ยนสถานะเมื่อใช้ความร้อน ในบทช่วยสอนนี้ เราจะทอผ้าที่มีวงจรทำความร้อนในตัวและพิมพ์ด้วยสีเทอร์โมโครมิก ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เกี่ยวกับข้อความอย่างง่าย
ต้นคริสต์มาส LED เปลี่ยนสี: 3 ขั้นตอน (พร้อมรูปภาพ)
ต้นคริสต์มาส LED เปลี่ยนสีได้: ฉันพบต้นคริสต์มาสต้นนี้ที่ร้านดอลลาร์เมื่อปีที่แล้ว และต้องการติดไฟ LED ไว้ที่ด้านล่างเพื่อจุดไฟ แต่ไม่เคยได้เจอเลยจนกระทั่งหนึ่งปีต่อมา นี่เป็นโครงการง่ายๆ ที่ ต้องการการบัดกรีน้อยมากและทำให้จบอย่างสวยงาม
ไฟ USB เปลี่ยนสี: 5 ขั้นตอน
ไฟ USB เปลี่ยนสีได้: นี่คือแสงที่ทำจากขวดพลาสติก เอ็นตกปลา สายเคเบิล USB แบบเก่า และไฟ RGB LED ที่เปลี่ยนสีได้ช้า ด้ายไนลอน (สายการประมง) ไม่ได้ให้ผลเหมือนกันกับใยแก้วนำแสงจริง มีการเสื่อมของสัญญาณแสงมากขึ้นตาม