Propaganda
Você pode fazer todo tipo de coisa com LEDs piscando e, neste projeto simples, criaremos um pequeno dispositivo que acenderá mensagens no ar quando você o balançar para frente e para trás. É mais fácil do que você pensa e o custo total das peças é inferior a US $ 5.
Este projeto utiliza uma ilusão de ótica chamada persistência da visão para fazer o texto aparecer no ar. Você provavelmente se deparou com esse fenômeno quando alguém move um diamante aceso rapidamente à noite. Usaremos um Arduino e alguns LEDs para imitar esse efeito. Este projeto é simples de construir, com poucos componentes e pouca solda (embora, se você quiser algumas dicas sobre como começar seu ferro de soldar, confira este guia Aprenda a soldar, com estas dicas e projetos simplesVocê está um pouco intimidado com o pensamento de um ferro quente e metal fundido? Se você deseja começar a trabalhar com eletrônicos, precisará aprender a soldar. Vamos ajudar. consulte Mais informação ).
Você precisará
- Arduino (usei um Nano de US $ 2 porque é compacto e barato, mas qualquer modelo deve ficar bem).
- 5x LEDs vermelhos.
- 5x Resistores de 220 Ohm.
- 1x Suporte da bateria 9v.
- 1x interruptor basculante.
- 1x pedaço de protoboard.
- Uma caixa para o produto acabado (usei uma pequena caixa de papelão pintada de preto).
Você também precisará de um ferro de soldar e um pouco de solda para juntar tudo.
Embora opcional, algumas mechas de solda podem ser muito úteis caso você cometa erros de solda. Uma placa de ensaio e alguns fios de conexão também são úteis para testar seu circuito.
Fiação
A fiação não poderia ser mais simples. Primeiro, conecte seu Arduino, LEDs e resistores, conforme mostrado neste diagrama.
Os pinos D2 a D6 vão para cada resistor, respectivamente, que são conectados ao ânodo positivo (perna longa) de cada LED. O cátodo está conectado ao terra, que se conecta de volta ao Arduino. Quando terminar, deve ser algo como isto:
É isso: o nosso circuito está pronto! Mais tarde, adicionaremos um compartimento de bateria e um comutador, mas é tudo o que precisamos para testar se ele funciona.
Código
Agora conecte seu Arduino ao computador e abra o IDE do Arduino. Se você é novo no Arduino e deseja um bom guia para começar, esse link Introdução ao Arduino: Guia para iniciantesO Arduino é uma plataforma de prototipagem eletrônica de código aberto baseada em hardware e software flexível e fácil de usar. Destina-se a artistas, designers, amadores e qualquer pessoa interessada em criar objetos ou ambientes interativos. consulte Mais informação será útil.
Abra um novo esboço e copie esse código. O código foi modificado de este projeto e você pode baixá-lo na íntegra neste Gist.
// por quanto tempo cada led permanece aceso. int delayTime = 1; // quanto tempo entre cada int charBreak = 3; // quanto tempo esperar após a conclusão da mensagem antes de repetir. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; configuração nula () { pinMode (LED1, SAÍDA); pinMode (LED2, SAÍDA); pinMode (LED3, SAÍDA); pinMode (LED4, SAÍDA); pinMode (LED5, SAÍDA); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; int o [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int excl [] = {0, 29, 0, 0, 0}; int ques [] = {8, 19, 20, 8, 0}; int espaço [] = {0, 0, 0, 0, 0}; void displayLine (linha int) { int myline; myline = linha; if (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} if (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} if (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} if (myline> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} if (myline> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } void displayChar (char c) { if (c == 'a') {for (int i = 0; i <5; i ++) {displayLine (a [i]); delay (delayTime);} displayLine (0);} if (c == 'b') {for (int i = 0; i <5; i ++) {displayLine (b [i]); delay (delayTime);} displayLine (0);} if (c == 'c2') {for (int i = 0; i <5; i ++) {displayLine (c2 [i]); delay (delayTime);} displayLine (0);} if (c == 'd') {for (int i = 0; i <5; i ++) {displayLine (d [i]); delay (delayTime);} displayLine (0);} if (c == 'e') {for (int i = 0; i <5; i ++) {displayLine (e [i]); delay (delayTime);} displayLine (0);} if (c == 'f') {for (int i = 0; i <5; i ++) {displayLine (f [i]); delay (delayTime);} displayLine (0);} if (c == 'g') {for (int i = 0; i <5; i ++) {displayLine (g [i]); delay (delayTime);} displayLine (0);} if (c == 'h') {for (int i = 0; i <5; i ++) {displayLine (h [i]); delay (delayTime);} displayLine (0);} if (c == 'i') {for (int it = 0; <5; it ++) {displayLine (i [it]); delay (delayTime);} displayLine (0);} if (c == 'j') {for (int i = 0; i <5; i ++) {displayLine (j [i]); delay (delayTime);} displayLine (0);} if (c == 'k') {for (int i = 0; i <5; i ++) {displayLine (k [i]); delay (delayTime);} displayLine (0);} if (c == 'l') {for (int i = 0; i <5; i ++) {displayLine (l [i]); delay (delayTime);} displayLine (0);} if (c == 'm') {for (int i = 0; i <5; i ++) {displayLine (m [i]); delay (delayTime);} displayLine (0);} if (c == 'n') {for (int i = 0; i <5; i ++) {displayLine (n [i]); delay (delayTime);} displayLine (0);} if (c == 'o') {for (int i = 0; i <5; i ++) {displayLine (o [i]); delay (delayTime);} displayLine (0);} if (c == 'p') {for (int i = 0; i <5; i ++) {displayLine (p [i]); delay (delayTime);} displayLine (0);} if (c == 'q') {for (int i = 0; i <5; i ++) {displayLine (q [i]); delay (delayTime);} displayLine (0);} if (c == 'r') {for (int i = 0; i <5; i ++) {displayLine (r [i]); delay (delayTime);} displayLine (0);} if (c == 's') {for (int i = 0; i <5; i ++) {displayLine (s [i]); delay (delayTime);} displayLine (0);} if (c == 't') {for (int i = 0; i <5; i ++) {displayLine (t [i]); delay (delayTime);} displayLine (0);} if (c == 'u') {for (int i = 0; i <5; i ++) {displayLine (u [i]); delay (delayTime);} displayLine (0);} if (c == 'v') {for (int i = 0; i <5; i ++) {displayLine (v [i]); delay (delayTime);} displayLine (0);} if (c == 'w') {for (int i = 0; i <5; i ++) {displayLine (w [i]); delay (delayTime);} displayLine (0);} if (c == 'x') {for (int i = 0; i <5; i ++) {displayLine (x [i]); delay (delayTime);} displayLine (0);} if (c == 'y') {for (int i = 0; i <5; i ++) {displayLine (y [i]); delay (delayTime);} displayLine (0);} if (c == 'z') {for (int i = 0; i <5; i ++) {displayLine (z [i]); delay (delayTime);} displayLine (0);} if (c == '!') {for (int i = 0; i <5; i ++) {displayLine (excl [i]); delay (delayTime);} displayLine (0);} if (c == '?') {for (int i = 0; i <5; i ++) {displayLine (ques [i]); delay (delayTime);} displayLine (0);} if (c == '.') {for (int i = 0; i <5; i ++) {displayLine (eos [i]); delay (delayTime);} displayLine (0);} if (c == '') {for (int i = 0; i <5; i ++) {displayLine (espaço [i]); delay (delayTime);} displayLine (0);} atraso (charBreak); } void displayString (char * s) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Altere o texto aqui dentro para alterar o texto exibido. // Certifique-se de manter os colchetes e as aspas. displayString (".. olá ..."); atraso (40); }
Salve o esboço e faça o upload para o seu quadro. Se houver algum erro, verifique se a placa e a porta corretas estão selecionadas. Seus LEDs devem começar a piscar. Caso contrário, verifique todas as suas conexões na sua placa de ensaio. Os números inteiros declarados no início do código determinam a rapidez com que o texto é exibido. Quanto maior o número, mais rápido você precisará agitar o dispositivo. Descobri que os números usados aqui funcionavam bem.
Agora faça um teste rápido. Desconecte o seu Arduino do cabo USB e conecte o suporte da bateria aos pinos VIN e GND do seu arduino
Agora que você pode movê-lo, tente balançar os LEDs à sua frente. Você deve ver algumas letras se formando no ar, desde que esteja escuro o suficiente ao seu redor. Eu achei que ajudou a configurar meu telefone para capturar isso.
Funciona! Agora, para torná-lo um pouco mais permanente.
Ferros no pronto!
Coloque sua placa Arduino, resistores e LEDs no seu protoboard da seguinte maneira:
Obviamente, você pode tornar o layout o mais compacto que desejar, desde que o circuito permaneça o mesmo. Deixe pelo menos uma linha de contatos protoboard em cada lado do seu Arduino para os componentes e a fonte de alimentação. Se você é iniciante em eletrônica, aqui estão algumas ótimas dicas para você Eletrônica para iniciantes: 10 habilidades que você precisa conhecerMuitos de nós nunca tocaram em um ferro de soldar - mas tornar as coisas incrivelmente gratificantes. Aqui estão dez das habilidades básicas em eletrônica DIY para ajudar você a começar. consulte Mais informação .
Soldaremos os catodos de LED juntos em uma linha para criar um terreno comum, assim como fizemos quando fizemos nossa Matriz de LED Atualize sua guirlanda de Natal com uma matriz LED ativada por movimentoEsta guirlanda de Natal DIY usa uma matriz de Arduino e LED para produzir uma incrível iluminação que impressionará seus amigos e familiares. consulte Mais informação .
Dobre cada cátodo para que ele se sobreponha ao próximo e solde-o para criar uma linha ininterrupta. Agora precisamos soldar nossos ânodos nas pernas dos resistores ao lado deles. Descobri que a maneira mais fácil de fazer isso era soldar cada perna no respectivo bloco e, em seguida, colocar o ferro entre eles para aquecer as duas juntas, antes de finalmente adicionar mais solda para preencher a lacuna entre eles.
Verifique cada conexão para ver se está solidamente conectada e, em seguida, use cortadores de fio para cortar o excesso de pernas dos resistores e LEDs.
Agora, repita a mesma tarefa, mas desta vez conectando a outra extremidade de nossos resistores às pernas do Arduino. Esta é a parte mais complicada da solda. Cada resistor se liga muito apenas ao seu pino do Arduino ou o circuito não funcionará da maneira que se destina. Cometi vários erros aqui e tive que usar o pavio de solda para remover a solda indesejada várias vezes.
Depois de fazer todas as conexões corretas, verifique se nenhuma delas se sobrepõe aos vizinhos. Se você tiver acesso a um multímetro aqui, poderá usar o modo de continuidade para verificar se cada pino tem apenas uma linha ininterrupta no resistor. Se você acabou de adquirir um multímetro, há um ótimo guia de introdução neste artigo. 7 habilidades técnicas DIY para ensinar seus filhos, porque as escolas não consulte Mais informação
Depois de verificar cada conexão, corte o excesso de comprimento das pernas dos resistores
Adicionando energia
Agora, passe um pedaço de fio do pino GND do seu Arduino até um buraco próximo ao local onde sua linha de cátodos soldados termina e coloque o fio preto do suporte da bateria ao lado dele.
Agora, solde o fio ao pino GND, da mesma maneira que fizemos com os resistores, e solde ambos os fios até o final da linha de cátodos para criar um terreno comum para o circuito.
Por fim, conecte um fio ao pino VIN do seu arduino e coloque seu interruptor entre esse fio e a bateria. Desculpas pelo interruptor coberto de cola quente nesta foto, tive que desmontar a máquina pronta para fotografar esta etapa!
Quando tudo estiver soldado, coloque uma bateria e pressione o interruptor. Parabéns! O circuito está pronto. Se você não encontrar nada acendendo, verifique cuidadosamente cada junta de solda para ver onde pode haver uma interrupção ou um curto-circuito.
Gabinete
Agora que estamos trabalhando, vamos colocá-lo em uma caixa. Aqui, uma caixa de papelão pintada era usada, embora você pudesse tornar algo mais permanente usando uma caixa comprada em uma loja de hobby ou mesmo uma velha caixa de tupperware. Para um crédito extra de nerd, você pode até imprimir em 3D por conta própria uma dessas impressoras 3D baratas. 5 impressoras 3D baratas que você pode comprar hojeAlguns anos atrás, mesmo as impressoras 3D mais baratas estavam desconfortavelmente próximas à marca de US $ 1.000 - agora você pode obter uma impressora 3D de qualidade por apenas US $ 400. consulte Mais informação
Reduza o tamanho da sua placa protetora marcando-a e removendo cuidadosamente as peças que você não precisa.
Coloque o seu circuito dentro do seu gabinete e marque onde os LEDs e o interruptor precisam passar. Opcionalmente, você também pode marcar onde o conector USB na placa Arduino encontra a borda, para que você possa conectá-lo para alterar o texto sem abrir a caixa. Faça ou faça os furos necessários no gabinete.
Agora adicione um pouco de cola quente nas bordas dos LEDs e cole-os no lugar. Colei um pedaço de esponja sob o circuito para que ele ficasse confortavelmente na caixa. Anexe sua chave ao gabinete. Usei cola quente, apesar de parafusos ou pernos tornarem uma conexão muito mais forte. Você também pode colar o suporte da bateria na parte traseira da placa de circuito para impedir que ele se mova para dentro quando o item está em uso, mas certifique-se de que nenhum contato de metal no gabinete toque em nenhuma das suas juntas de solda!
Trabalho feito!
Feche seu gabinete e pronto! Para alterar o texto, conecte o cabo USB à placa Arduino e altere o texto dentro dos colchetes após displayString no ciclo método. Encontre um lugar escuro e divirta-se!
Você já construiu uma máquina POV e conhece maneiras de melhorar o design? Você está planejando construir um você mesmo? Conte-nos sobre o seu projeto nos comentários abaixo, adoraríamos ouvi-lo!
Ian Buckley é jornalista freelancer, músico, intérprete e produtor de vídeo que vive em Berlim, Alemanha. Quando ele não está escrevendo ou no palco, está mexendo com eletrônicos ou códigos DIY, na esperança de se tornar um cientista louco.