Índice:

Alterar as cores do LED usando um POT e ATTINY85: 3 etapas
Alterar as cores do LED usando um POT e ATTINY85: 3 etapas

Vídeo: Alterar as cores do LED usando um POT e ATTINY85: 3 etapas

Vídeo: Alterar as cores do LED usando um POT e ATTINY85: 3 etapas
Vídeo: Franzininho WiFI e Adafruit IO - Controlando dispositivos remotamente 2024, Julho
Anonim
Alterar as cores do LED usando um POT e ATTINY85
Alterar as cores do LED usando um POT e ATTINY85
Alterar as cores do LED usando um POT e ATTINY85
Alterar as cores do LED usando um POT e ATTINY85
Alterar as cores do LED usando um POT e ATTINY85
Alterar as cores do LED usando um POT e ATTINY85

Neste projeto usamos um potenciômetro (POT) para alterar as cores de um LED usando um ATTINY85.

Algumas definições -

Um potenciômetro é um dispositivo com um pequeno parafuso / mecanismo giratório que, quando girado, gera diferentes resistências elétricas. Você pode ver na imagem anotada acima que o POT tem 3 pinos, a saber, +, - e saída. O POT é alimentado conectando os pinos + e - ao vcc e aterramento respectivamente em uma fonte de alimentação. Conforme o parafuso POT é girado, a resistência de saída muda e faz com que o LED diminua ou aumente em intensidade.. Em outras palavras, é um resistor variável. Eles são usados em coisas como dimmers de luz doméstica.

LED - Esta é uma pequena luz que acende quando a corrente elétrica passa por ela. Neste caso, usaremos um LED multicolorido que possui 3 pinos, um terra (meio) e dois pinos que mostram verde e vermelho respectivamente quando acionados.

ATTINY85 - este é um pequeno micro-chip de baixo custo que você pode programar como um Arduino.

Visão geral - A saída do POT está conectada ao ATTINY85. Conforme o parafuso POT é girado, uma resistência de diferença é emitida como um número entre 0 e 255. O ATTINY pode medir isso e tomar ações diferentes dependendo do valor da resistência POT. Neste caso, nós o programamos para se conectar ao LED da seguinte maneira.

Se o número for maior que 170, mude o LED para VERDE.

Se o número for menor que 170, mas maior que 85, mude o LED para VERMELHO.

se o número for inferior a 85, ligue o LED VERDE E VERMELHO, o que resulta em LARANJA.

BOM

1 x LED de 3 pinos 1 x ATTINY 85

1 x POT (B100K)

1 placa de ensaio e cabos

1 fonte de alimentação.

Etapa 1: Programando o ATTINY85

Em termos de programação do ATTINY85, consulte meu instrutível anterior -

O código é mostrado abaixo. Alguns pontos a serem observados são que dois pinos ATTINY, PB3, pino físico 2, PB2, pino físico 7, estão conectados, no modo digital, ao LED para efetuar a mudança de cor. O pino PB4 da ATTINY, pino físico 3, está conectado ao POT em modo analógico, o que significa que ele pode ler valores entre 0 e 254. Customizei o código que encontrei na internet, então reconheço esse trabalho. -

void initADC () {// *** // *** Pinagem 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 - entrada para POT // pb3 led pino 1 // pb2 led pino 3 // frequência ATTINY 85 definida para 8 MHz interno / * esta função inicializa o ADC

Notas do pré-escalador ADC:

O ADC Prescaler precisa ser definido de forma que a frequência de entrada do ADC esteja entre 50 - 200kHz.

Para obter mais informações, consulte a tabela 17.5 "Seleções de pré-escalador ADC" no capítulo 17.13.2 "ADCSRA - Registro de status e controle ADC A" (páginas 140 e 141 na folha de dados ATtiny25 / 45/85 completa, Rev. 2586M – AVR – 07 / 10)

Valores válidos do prescaler para várias velocidades de clock

Valores do prescaler disponíveis do relógio --------------------------------------- 1 MHz 8 (125 kHz), 16 (62,5 kHz) 4 MHz 32 (125 kHz), 64 (62,5 kHz) 8 MHz 64 (125 kHz), 128 (62,5 kHz) 16 MHz 128 (125 kHz)

O exemplo abaixo define o prescaler para 128 para mcu rodando a 8MHz

(verifique a folha de dados para os valores de bits adequados para definir o prescaler) * /

// resolução de 8 bits

// defina ADLAR para 1 para habilitar o resultado de deslocamento para a esquerda (apenas os bits ADC9.. ADC2 estão disponíveis) // então, apenas a leitura de ADCH é suficiente para resultados de 8 bits (256 valores) DDRB | = (1 << PB3); // O pino é definido como uma saída. DDRB | = (1 << PB2); // O pino é definido como uma saída. ADMUX = (1 << ADLAR) | // resultado do deslocamento à esquerda (0 << REFS1) | // Define ref. tensão para VCC, bit 1 (0 << REFS0) | // Define ref. tensão para VCC, bit 0 (0 << MUX3) | // use ADC2 para entrada (PB4), MUX bit 3 (0 << MUX2) | // use ADC2 para entrada (PB4), MUX bit 2 (1 << MUX1) | // usa ADC2 para entrada (PB4), MUX bit 1 (0 << MUX0); // use ADC2 para entrada (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Habilita ADC (1 << ADPS2) | // define o prescaler para 64, bit 2 (1 << ADPS1) | // define o prescaler para 64, bit 1 (0 << ADPS0); // define o prescaler para 64, bit 0}

int main (vazio)

{initADC ();

enquanto (1)

{

ADCSRA | = (1 << ADSC); // inicia a medição ADC while (ADCSRA & (1 << ADSC)); // espere até que a conversão seja concluída

if (ADCH> 170)

{PORTB | = (1 << PB3); // Pino definido como HIGH. PORTB | = (1 << PB2); // Pino definido como HIGH. } else if (ADCH 85) {PORTB | = (1 << PB3); // Pino definido como HIGH. PORTB & = ~ (1 << PB2); // Pino definido como BAIXO

} outro {

PORTB | = (1 << PB2); // Pino definido como HIGH. PORTB & = ~ (1 << PB3); // Pino definido como BAIXO

}

}

return 0;

}

Etapa 2: Circuito

O circuito
O circuito

Pins ATTINY

PB3, pino físico 2 - pino 1 do LED conectado

PB4, pino físico 3, está conectado ao pino do meio POT

GND, pino físico 4, está conectado ao trilho negativo - fonte de alimentação

PB2, pino físico 7 - pino 3 do LED conectado

VCC, pino físico 8, é conectado ao trilho positivo - fonte de alimentação

PANELA

pinos pos e neg conectados aos respectivos trilhos - fonte de alimentação.

CONDUZIU

pino do meio conectado ao trilho negativo - fonte de alimentação

Eu experimentei usar uma fonte de alimentação de 3 e 3,3 volts e ambas funcionaram.

Etapa 3: Conclusão

Conclusão
Conclusão

A capacidade do ATTINY85 de se mover entre os modos analógico e digital é muito poderosa e pode ser usada em várias aplicações diferentes, por exemplo, dirigir motores de velocidade variável e criar notas musicais. Vou explorar isso em instructables futuros. Espero que você tenha achado isso útil.

Recomendado: