Мазмуну:

POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү: 3 кадам
POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү: 3 кадам

Video: POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү: 3 кадам

Video: POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү: 3 кадам
Video: Домашняя автоматизация: как использовать цифровое реле времени с двойной задержкой 2024, Июль
Anonim
POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү
POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү
POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү
POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү
POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү
POT жана ATTINY85 аркылуу LED түстөрүн өзгөртүү

Бул долбоордо биз ATTINY85тин жардамы менен LEDдеги түстөрдү өзгөртүү үчүн потенциометрди (ПОТ) колдонобуз.

Кээ бир аныктамалар -

Потенциометр - бул кичинекей бурама / бурулуш механизми бар түзүлүш, ал бурулганда ар кандай электр каршылыгын чыгарат. Жогорудагы аннотацияланган сүрөттөн POTтун 3 казыгы бар экенин көрө аласыз, тактап айтканда, +, - жана чыгаруу. POT + жана - pin'дерди VC менен жерге туташтырып, тиешелүүлүгүнө жараша электр менен камсыз кылат. POT бурамасы бурулганда, чыгуу каршылыгы өзгөрөт жана LEDдин интенсивдүүлүгүнүн төмөндөшүнө же көбөйүшүнө алып келет.. Башкача айтканда, бул өзгөрүлмө каршылык. Алар үйдүн жарык диммерлери сыяктуу нерселерде колдонулат.

Светодиод - бул кичинекей жарык, ал электр тогу өткөндө жарык кылат. Бул учурда, биз 3 казык, бир жер (орто) жана иштетилгенде тиешелүүлүгүнө жараша жашыл жана кызыл түстөгү эки казыкка ээ болгон түстүү LEDди колдонобуз.

ATTINY85-бул кичинекей арзан микро-чип, аны сиз Arduino сыяктуу программалай аласыз.

Сереп - ПОТтон чыгуу ATTINY85ке туташкан. POT бурамасы бурулганда, 0 менен 255 ортосундагы айырма каршылыгы чыгат. ATTINY муну өлчөп, POT каршылыгынын маанисине жараша ар кандай аракеттерди жасай алат. Бул учурда, биз аны LEDге төмөнкүдөй туташуу үчүн программалаганбыз.

Эгерде саны 170тен чоң болсо, анда LEDди Жашылга которуңуз.

Эгерде саны 170тен аз, бирок 85тен көп болсо, LEDди КЫЗЫЛГА которуңуз.

эгерде саны 85тен аз болсо, ЖАШЫЛ ЖАНА КЫЗЫЛДЫ күйгүзүңүз, бул апельсинге алып келет.

БОМ

1 x 3 pin LED 1 x ATTINY 85

1 х казан (B100K)

1 х нан жана кабель

1 электр менен камсыздоо.

1 -кадам: ATTINY85ти программалоо

ATTINY85ти программалоо жагынан, менин мурунку көрсөтмөлөрүмө кайрылыңыз-https://www.instructables.com/id/15-Dollar-Attiny8…

Код төмөндө көрсөтүлгөн. Белгилей кетчү нерсе, эки ATTINY казыгы, PB3, физикалык 2, PB2, физикалык пин 7, түстүн өзгөрүшүн камсыз кылуу үчүн LEDге санариптик режимде туташкан. ATTINY пин PB4, физикалык 3 -пин, POTко аналогдук режимде туташкан, бул 0ден 254кө чейинки баалуулуктарды окуй алат дегенди билдирет. Мен интернеттен тапкан кодду ыңгайлаштырып койгом, ошондуктан бул ишти моюнга алам. -

жараксыз initADC () {// *** // *** Pin 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 жетелөөчү пин 1 // pb2 жетелөөчү пин 3 // ATTINY 85 жыштыгы ички 8 МГцке коюлган/* бул функция ADCди баштайт

ADC Prescaler эскертүүлөрү:

ADC Prescaler ADC киргизүү жыштыгы 50 - 200 кГцге чейин болушу керек.

Көбүрөөк маалымат алуу үчүн 17.13.2 "ADCSRA - ADC Control and Status Register A" бөлүмүндөгү 17.5 "ADC Prescaler тандоолору" таблицасын караңыз (140 жана 141 -беттер ATtiny25/45/85 толук маалымат баракчасында, Rev. 2586M – AVR – 07/ 10)

Ар кандай саат ылдамдыгы үчүн прескалердин жарактуу баалуулуктары

Саат Жеткиликтүү prescaler баалуулуктары --------------------------------------- 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)

Төмөндөгү мисалда 8 МГцте иштеген mcu үчүн prescaler 128 коюлган

(алдын ала эсептегичти орнотуу үчүн маалымат барагын туура бит баалуулуктары үчүн текшериңиз) */

// 8-биттик чечим

// Солго жылуу натыйжасын иштетүү үчүн ADLARны 1ге коюңуз (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 << ADEN) | // ADC иштетүү (1 << ADPS2) | // prescaler 64кө, бит 2ге коюңуз (1 << ADPS1) | // prescalerди 64кө коюңуз, бит 1 (0 << ADPS0); // prescaler 64кө, бит 0} коюңуз

int main (боштук)

{initADC ();

учурда (1)

{

ADCSRA | = (1 << ADSC); // ADC өлчөөнү баштоо (ADCSRA & (1 << ADSC)); // конверсия бүткөнчө күтө туруңуз

эгер (ADCH> 170)

{PORTB | = (1 << PB3); // PIN жогору деп коюлду. PORTB | = (1 << PB2); // PIN жогору деп коюлду. } else if (ADCH 85) {PORTB | = (1 << PB3); // PIN жогору деп коюлду. PORTB & = ~ (1 << PB2); // ПИН төмөнгө коюлду

} башка {

PORTB | = (1 << PB2); // PIN жогору деп коюлду. PORTB & = ~ (1 << PB3); // ПИН төмөнгө коюлду

}

}

return 0;

}

2 -кадам: Circuit

Circuit
Circuit

ATTINY казыктары

PB3, физикалык пин 2 - туташкан LED пин 1

PB4, физикалык пин 3, орто пин ПОТко туташкан

GND, физикалык пин 4, терс темир жолго туташкан - электр менен камсыздоо

PB2, физикалык пин 7 - туташкан LED пин 3

VCC, физикалык пин 8, оң темир жолго туташкан - электр менен камсыздоо

POT

тиешелүү рельске туташкан пос жана нег пин - электр менен камсыздоо.

LED

терс темир жолго туташкан орто пин - электр менен камсыздоо

Мен 3 жана 3,3 вольттук электр булагын колдонуп, экөө тең иштеди.

3 -кадам: Жыйынтык

Жыйынтык
Жыйынтык

ATTINY85тин аналогдук жана санариптик режимге өтүү мүмкүнчүлүгү абдан күчтүү жана ар кандай тиркемелерде колдонулушу мүмкүн, мис. өзгөрмө ылдамдыктагы моторлорду айдоо жана музыкалык ноталарды түзүү. Мен муну келечектеги көрсөтмөлөрдө изилдейм. Мен муну пайдалуу деп таптыңыз деп үмүттөнөм.

Сунушталууда: