Índice:
Vídeo: Alterar as cores do LED usando um POT e ATTINY85: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
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
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
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:
Detecção de cores em Python usando OpenCV: 8 etapas
Detecção de cores em Python usando OpenCV: Hello! Este instrutível é usado para orientar sobre como extrair uma cor específica de uma imagem em python usando a biblioteca openCV. Se você é novo nessa técnica, não se preocupe, no final deste guia você será capaz de programar sua própria cor
Seletor de cores Arduino RGB - Escolha cores de objetos da vida real: 7 etapas (com imagens)
Arduino RGB Color Picker - Escolha cores de objetos da vida real: escolha facilmente cores de objetos físicos com este seletor de cores RGB baseado em Arduino, permitindo recriar as cores que você vê em objetos da vida real em seu PC ou telefone celular. Basta apertar um botão para escanear a cor do objeto usando um TCS347 barato
Usando LEDs RGB para criar sequências de cores: 12 etapas
Usando LEDs RGB para criar sequências de cores: Este manual de instruções mostrará como usar LEDs RGB para criar sequências de cores usando Arduino Uno e um código. Os 3 LEDs RGB mudarão de cor durante o tempo, enquanto os outros 2 LEDs RGB permanecerão da mesma cor
Ciclo de um LED RGB através do espectro de cores usando um Raspberry Pi 2 e Scratch: 11 etapas
Ciclo de um LED RGB através do espectro de cores usando um Raspberry Pi 2 e Scratch: Atualizar notas quinta-feira, 25 de fevereiro de 2016: Eu melhorei o programa Scratch e redesenhei meu instrutível. Olá, pessoal, com este projeto, eu queria usar o Scratch para alternar um LED RGB através do espectro de cores. Há muitos projetos fazendo isso com t
Detecção de cores usando RGB LED: 4 etapas
Detecção de cores usando LED RGB: Você já quis uma maneira automatizada de detectar a cor de um objeto? Ao brilhar a luz de uma determinada cor no objeto e observar quanta luz é refletida de volta, você pode dizer de que cor o objeto é. Por exemplo, se você acender uma luz vermelha o