Índice:

3 presentes de Natal fáceis da ATTiny: 4 etapas
3 presentes de Natal fáceis da ATTiny: 4 etapas

Vídeo: 3 presentes de Natal fáceis da ATTiny: 4 etapas

Vídeo: 3 presentes de Natal fáceis da ATTiny: 4 etapas
Vídeo: CONTROLANDO MOTOR DE PASSO COM DIGISPARK ATTINY85 E IDE ARDUINO 2024, Novembro
Anonim
3 presentes de Natal fáceis ATTiny
3 presentes de Natal fáceis ATTiny

Todos os anos, a temporada de férias chega e eu fico sem saber o que dar para meus amigos e família. As pessoas sempre dizem que é melhor fazer o presente você mesmo do que comprá-lo em uma loja, então este ano eu fiz exatamente isso. O primeiro exibe um nome ou imagem básica quando acenado no ar, o segundo desvanece-se suavemente entre dois led's brancos (também tem um alfinete de segurança para prendê-lo a roupas ou uma bolsa) e o terceiro é uma espécie de luz ambiente, rolando perfeitamente entre as cores. Todos custam menos de US $ 15 e são fáceis de montar em menos de uma hora. Você também pode dar essas instruções, bem como peças, como um presente para alguém interessado em aprender eletrônica.

Nota: Presume-se um nível básico de soldagem. No entanto, ao contrário do meu instrutível anterior, vou encobrir como programar um AVR. Eu realmente espero que isso ajude as pessoas que estão tentando começar na eletrônica. Lembro-me de quando estive lá e ficarei feliz em esclarecer qualquer dúvida que você possa ter. Lembre-se de que não existem perguntas estúpidas! Deixei-o em aberto para você determinar como vai organizar sua placa de circuito, na esperança de descobrir uma nova maneira de exibir os circuitos simples que desenhei. Poste as fotos quando terminar, mal posso esperar para ver o que você descobrirá! Peças para todos os projetos N = número de projetos x N ATTiny45 (www.digikey.com) x N soquete DIP de 8 pinos (RadioShack) x 1 Large Perf Board (comprei a minha na RadioShack) x Bateria de célula tipo moeda N 3v e suporte (RadioShack) x1 Programador (eu uso isso e o makefile fornecido será configurado para usar este) x2 Resistores N, um de 10 ohm e um 10k ohm (RadioShack) Aqui está uma foto dos três projetos concluídos:

Etapa 1: o pisca-pisca do nome

The Name Flasher
The Name Flasher
The Name Flasher
The Name Flasher
The Name Flasher
The Name Flasher

Outras partes x5 LEDs de 3 mm DIFUSADOS (RadioShack) Este projeto usa persistência de visão para exibir uma imagem ou texto quando movido rapidamente. Funciona melhor quando está escuro. Com o AVR, estamos alternando entre LEDs mais rápido do que os olhos podem ver, podemos criar uma imagem no ar com muito poucos componentes. O Código: (Baixe o arquivo.zip na parte inferior da página para o código, makefile, etc. (Esse código não tem os comentários extensos que este código tem, mas se este código não funcionar, tente aquele no arquivo zip)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Para aqueles de vocês que nunca leram C antes, a barra dupla indica um comentário. Isso define os pinos do avr como uma saída char x = 10; // x é usado para definir o atraso legnth. Aumentar o valor fornece uma alternância mais lenta entre os pixels, diminuindo, um while (1) // While (a condição é verdadeira); {Faça isso} (verdadeiro em C é 1) {PORTB = ~ 0b00010001; // O nome do meu amigo é Zoe, então desenhei os caracteres em papel milimetrado e os imputei ao PORTB. Os primeiros três zeros não importam porque há apenas cinco leds conectados. Um um em um dos cinco espaços restantes indica que o LED está aceso, um zero, apagado. _delay_ms (x); // atraso em milissegundos PORTB = ~ 0b00010011; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00011001; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); // Espaço aberto entre caracteres _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); // A palavra é feita por claridade tenho um espaço maior entre as palavras}} Agora siga as instruções na página 4 para compilar este código e enviá-lo para o seu AVR.

Etapa 2: a luz da bolsa

The Purse Light
The Purse Light
The Purse Light
The Purse Light

Outras partes LEDs x2 NÃO DIFUSÃO (RadioShack) Este projeto desvanece-se suavemente entre dois LEDs. Minha mãe queria algo em sua bolsa para ajudá-la a ser vista à noite. Achei que uma luz piscando para uma bicicleta chamaria muita atenção, então fiz isso. Ele usa PWM (modulação por largura de pulso) para dar o efeito de escurecimento e brilho. O que realmente está acontecendo é que o led está piscando mais rápido do que os olhos podem ver em intervalos variáveis para simular uma mudança. Você pode ver isso mais claramente quando você acena em seu rosto, como faria com o Nome Flasher. O código pode ser baixado no final desta página. Consulte a página 4 sobre como compilar para o seu AVR. Em vez de comentar o código aqui, explicarei brevemente o conceito. O PWM é gerado por um temporizador. A cada ciclo do relógio, o cronômetro conta um. Quando atinge um certo valor (neste caso OCR1B), muda o estado de um pino (neste caso OC1B). Para fazer os LEDs "desligarem", conectei o outro ao [OPOSTO] OC1B (isso é o que significa a barra na parte superior). Em seguida, usamos x para aumentar e diminuir a quantidade de tempo para os LEDs ficarem acesos.

Etapa 3: o Color Scroller

The Color Scroller
The Color Scroller
The Color Scroller
The Color Scroller

Outras Partsx1 RGB LED (difundido é melhor) (RadioShack) Isso para mim é um clássico. Sempre fui fascinado por luzes como esta e as acho muito calmantes, então naturalmente eu queria fazer uma. Além disso, sua visibilidade na sociedade lhes dá um verdadeiro fator WOW. "Você FEZ isso ?!" O código é quase o mesmo e, na minha opinião, mais fácil de ler. Você pode baixar o na parte inferior. Desta vez, fornecemos um pino PWM para cada pino de aterramento no LED RGB. Dessa forma, aterramos por meio do chip. Os volts podem ser medidos como a diferença entre dois pontos. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Esta última instância é o que estamos fazendo quando aterramos através do chip. Quando há três volts em ambos os lados, digamos, não há volts suficientes para acionar um LED. Então, para esmaecer entre as cores, escolhemos uma cor e outra cor. Defina um igual ax e o outro igual a 255-x ou o INVERSO de x. Como estávamos fazendo no projeto anterior. Agora vá para a etapa 4 para programar.

Etapa 4: Programação

Programação
Programação

Primeiro baixe e instale o Emacs, avr-gcc e Avrdude e quaisquer dependências que eles possam ter. No Arch linux eu fiz isso com: sudo pacman -Sy emacs avrdude

Agora é hora de conectar seu programador ao AVr. Conecte os pinos do programador ISP de 6 pinos (imagem abaixo) aos pinos corosponding em seu AVR (folha de dados, página 2) (fiz isso em uma placa de ensaio). Agora conecte o programador ao seu computador e toque MUITO RAPIDAMENTE na parte superior do AVR. Se estiver quente, REMOVA O PROGRAMADOR DO COMPUTADOR IMEDIATAMENTE, verifique as conexões e tente novamente (Alimentação e Gnd ao contrário?). Se não estiver quente, abra o emacs e pressione Ctl-x Ctl-f para localizar o arquivo.c. Abra-o e pressione Meta (Usualy Alt) -x e digite compilar. Pressione Enter duas vezes e, se tiver sorte, seu AVR deverá agora estar executando o seu código! Obrigado por ler! Espero que tenham gostado e aprendido alguma coisa. Por favor, não hesite em fazer perguntas e não se esqueça de postar fotos do que você descobrir. Boas festas e não se esqueçam de votar!

Recomendado: