Wednesday, 25 October 2017

Arduino shift out binário opções no Brasil


O 74HC164 Shift Register e seu Arduino ampquotsome outros modelos são paralelos em série, eles fazem a mesma coisa, mas como entradas para o arduinoampquot. Que números de peça são estes, como eu não posso encontrar um registro de deslocamento PISO de 8 bits na lista de peças 74XX mais 74 séries lógicas I. C. Tem uma parte complementar que são 1 ou 2 dígitos diferentes, dê uma olhada no 165 e 166. Aqueles don39t fazer o que eu quero, mas nunca mente como I39ve o problema. Eu preciso inserir informações de 15 opções diferentes para o arduino, mas eu não tenho que muitos pinos de reposição ltemgt (alguns estão em uso como saídas) ltemgt. I39ve usado 4 ltstronggt73LS30ltstronggt (8 portas de entrada NAND) para dar uma saída binária de 4 bits, para que eles só usam 4 pinos no arduino. Não tão bom quanto 1 pino (serial), mas melhor do que 15 pinos Muito legal tutorial. LtbrgtI teve um problema descobrir onde ligar o relógio (8) ltbrgtand pino 9 (V) no 74HC164. Eu finalmente peguei ele e pino aterrado. Eu estava me perguntando por que quando eu toquei no pino 9, os leds acenderiam. Então percebi que estava agindo como uma espécie de terra, então ele me atingiu. LOLltbrgtMy próximo tutorial será o display. ltbrgtltbrgtl segmento 7Eu estava me perguntando como eu posso ter a matriz 4x4 flash letters. ltbrgtCould você me dá algumas dicas sobre isso Como posso abrir o arquivo. tmp no arduino IDE. Parece não funciona. Ltbrgtthank você :) clique nos links acima ele vai abrir no seu navegador, basta copiar e colar, ou renomear o arquivo tmp para pde (não tenho idéia por que fazer isso) Ok. Vou tentar Obrigado Este é um excelente instrutível Este é de longe o melhor guia de iniciantes para registos de deslocamento. Muito obrigado por colocar isso lá fora. Espero que você ainda responda perguntas para este instructable. Eu terminei de construir a matriz 4x4. Tudo costuma funcionar bem, mas estou tendo problemas para acender o LEDs. ltbrgtltbrgtI pode facilmente endereçar um diodo emissor de luz individual para acender, mas quando eu faço eu tenho LEDs de ambiente para ligar também (muito mais claro, em seguida, o LED endereçado) ltbrgtltbrgtI ter Atacou uma imagem para mostrar o que está acontecendo. Estou tentando apenas acender e LED que está na posição (1,1), mas como o mesmo LED (4,4) é pouco iluminado. Ltbrgtltbrghere é o pedaço de código que eu estou usando. LtbrgtltbrgtAny suposição de porquê Olá queria dizer obrigado por um ótimo tutorial, estou prestes a terminar de construir o 4x4 Matrix e vai deixar você sabe como ele vai. LtbrgtshiftOut (data, clock, MSBFIRST, B10000001) Ltbrgt Grande tutorial. ampnbsp Obrigado por torná-lo, it39s real helpfulltbrgt Este é um guia fantástico ltbrgt ltbrgt I39ve sido à procura de algo escrito como este por um tempo. Agora tenho uma matriz 4x4 totalmente trabalhada, que eu construí, e tenho que mostrar os padrões que eu quero. Tudo isso é graças a você. Ltbrgt ltbrgt ltbrgt ltbrgt ltbrgt Mikey C Super tutorial rad tutorial para Paralelo Shifting-Out com um 74HC595 Shifting Out amp o chip 595 Em algum momento ou outro você pode ficar sem pinos em sua placa Arduino e precisa estendê-lo com registros de deslocamento. Este exemplo é baseado no 74HC595. A folha de dados refere-se ao 74HC595 como um serial de 8 bits, serial ou paralelo-out shift register com saída travas de 3 estados. Em outras palavras, você pode usá-lo para controlar 8 saídas de uma vez enquanto apenas ocupando alguns pinos em seu microcontrolador. Você pode vincular vários registradores juntos para estender sua saída ainda mais. (Os usuários também podem querer procurar outros chips driver com 595 ou 596 em seus números de peça, existem muitos. O STP16C596, por exemplo, irá conduzir 16 LEDs e elimina os resistores série com built-in fontes de corrente constante.) Como isso tudo funciona É através de algo chamado comunicação serial síncrona, ou seja, você pode pulso um pino para cima e para baixo, assim, comunicar um byte de dados para o registro bit a bit. Seu pulsando segundo pino, o pino do relógio, que você delinear entre bits. Isto está em contraste com a utilização da comunicação serial assíncrona da função Serial. begin (), que depende do remetente e do receptor a serem configurados independentemente para uma taxa de dados especificada. Uma vez que o byte inteiro é transmitido ao registrador, as mensagens HIGH ou LOW mantidas em cada bit são parceladas para cada um dos pinos de saída individuais. Esta é a parte de saída paralela, tendo todos os pinos fazer o que você quer que eles façam tudo de uma vez. A parte de saída serial deste componente vem de seu pino extra que pode passar a informação serial recebida do microcontrolador para fora novamente inalterada. Isto significa que você pode transmitir 16 bits em uma linha (2 bytes) e os primeiros 8 fluirão através do primeiro registrador no segundo registro e serão expressados ​​lá. Você pode aprender a fazer isso a partir do segundo exemplo. 3 estados refere-se ao fato de que você pode definir os pinos de saída como alta, baixa ou alta impedância. Ao contrário dos estados HIGH e LOW, você não pode definir pinos para o seu estado de alta impedância individualmente. Você só pode definir o chip inteiro juntos. Esta é uma coisa bastante especializada para fazer - Pense em uma matriz de LED que pode precisar de ser controlado por microcontroladores completamente diferentes, dependendo de uma configuração de modo específico construído em seu projeto. Nenhum dos dois exemplos aproveita esse recurso e normalmente não precisa se preocupar em obter um chip que o tenha. Aqui está uma tabela explicando os pin-outs adaptados a partir da folha de dados Phillips. O primeiro passo é estender seu Arduino com um registro de deslocamento. O Circuito 1. Ligando-o Faça as seguintes conexões: GND (pino 8) à terra, Vcc (pino 16) a 5V OE (pino 13) à terra MR (pino 10) a 5V Esta configuração faz com que todos os pinos de saída Ativo e endereçável o tempo todo. A única falha deste conjunto é que você acaba com as luzes ligando para seu último estado ou algo arbitrário cada vez que você ligar o circuito pela primeira vez antes do programa começa a ser executado. Você pode contornar isso controlando os pinos MR e OE de sua placa Arduino também, mas desta forma funcionará e o deixará com pinos mais abertos. 2. Conecte a Arduino DS (pino 14) a Ardunio DigitalPin 11 (fio azul) SHCP (pino 11) a Ardunio DigitalPin 12 (fio amarelo) STCP (pino 12) a Ardunio DigitalPin 8 (fio verde) Ser referenciado como o dataPin, o clockPin eo latchPin respectivamente. Observe o capacitor de 0.1f no latchPin, se você tem algum cintilação quando os pulsos do pino de trava você pode usar um capacitor até mesmo para fora. 3. Adicione 8 LEDs. Neste caso, você deve conectar o cátodo (pino curto) de cada LED a uma terra comum, eo ânodo (pino longo) de cada LED para seu respectivo pino de saída do registro de deslocamento. Usando o registro de deslocamento para fornecer energia como esta é chamada corrente de abastecimento. Alguns registros de deslocamento cant fonte atual, eles só podem fazer o que é chamado de afundamento atual. Se você tiver um desses significa que você terá que virar a direção dos LEDs. Colocando os ânodos diretamente na alimentação e os cátodos (pinos de aterramento) nas saídas do registrador de deslocamento. Você deve verificar a sua folha de dados específica se você arent usando um chip da série 595. Não se esqueça de adicionar um resistor de 220 ohms em série para proteger os LEDs de serem sobrecarregados. Diagrama de circuito Aqui estão três exemplos de código. O primeiro é apenas um código do mundo hello que simplesmente produz um valor de byte de 0 a 255. O segundo programa acende um LED de cada vez. O terceiro ciclos através de uma matriz. O código é baseado em duas informações na folha de dados: o diagrama de tempo e a tabela lógica. A tabela lógica é o que diz que basicamente tudo importante acontece em um up beat. Quando o clockPin vai de baixo para alto, o registrador de deslocamento lê o estado do pino de dados. À medida que os dados são deslocados, ele é salvo em um registro de memória interna. Quando o latchPin vai de baixo para alto, os dados enviados são movidos a partir dos registos de deslocamento do registo de memória acima mencionado para os pinos de saída, iluminando os LEDs. Neste exemplo você adicionará um segundo registrador de deslocamento, duplicando o número de pinos de saída que você tem enquanto ainda estiver usando o mesmo número de pinos do Arduino. O Circuito 1. Adicione um segundo registrador de deslocamento. A partir do exemplo anterior, você deve colocar um segundo registro de deslocamento na placa. Deve ter as mesmas ligações ao poder e à terra. 2. Ligue os 2 registos. Duas dessas conexões simplesmente estendem o mesmo sinal de clock e trava do Arduino para o segundo registrador de deslocamento (fios amarelo e verde). O fio azul está indo do pino de saída serial (pino 9) do primeiro registro de deslocamento para a entrada de dados em série (pino 14) do segundo registrador. 3. Adicione um segundo conjunto de LEDs. Neste caso eu adicionei uns verdes assim que ao ler o código é desobstruído que byte está indo a que jogo dos diodos emissores de luz Diagrama de circuito Aqui outra vez são três exemplos do código. Se você está curioso, você pode querer experimentar as amostras do primeiro exemplo com este circuito criado apenas para ver o que acontece. Exemplo de código 2.1 Contadores binários duplos Há apenas uma linha extra de código em comparação com a primeira amostra de código do exemplo 1. Ele envia um segundo byte. Isso força o primeiro registrador de deslocamento, aquele diretamente ligado ao Arduino, a passar o primeiro byte enviado ao segundo registrador, iluminando os LEDs verdes. O segundo byte aparecerá nos LEDs vermelhos. Exemplo de código 2.2 2 Byte One By One Comparando esse código com o código similar do exemplo 1, você vê que um pouco mais teve que mudar. A função blinkAll () foi alterada para a função blinkAll2Bytes () para refletir o fato de que agora há 16 LEDs para controlar. Além disso, na versão 1 os pulsos do latchPin estavam situados dentro das subfunções lightShiftPinA e lightShiftPinB (). Aqui eles precisam ser movidos de volta para o loop principal para acomodar a necessidade de executar cada subfunção duas vezes em uma linha, uma vez para os LEDs verdes e uma vez para os vermelhos. Exemplo de código 2.3 - Arrays duplos definidos Como a amostra 2.2, a amostra 2.3 também tira proveito da nova função blinkAll2bytes (). 2.3s grande diferença da amostra 1.3 é apenas que em vez de apenas uma única variável chamada dados e uma única matriz chamada dataArray você tem que ter um dataRED, um dataGREEN, dataArrayRED, dataArrayGREEN definido frente. Isto significa que a linha dataRED dataArrayREDj dataGREEN dataArrayGREENj shiftOut (dataPin, clockPin, data) shiftOut (dataPin, clockPin, dataGREEN) shiftOut (dataPin, clockPin, dataRED) Iniciado por Carlyn Maw e Tom Igoe Pouco sobre Shift Registers. Estas são uma parte bastante importante da programação Arduino, basicamente porque eles expandem o número de saídas que você pode usar, em troca de apenas 3 pinos de controle. Você também pode juntar registros de deslocamento em cadeia para obter ainda mais saídas. Este é um salto significativo na dificuldade de tutoriais anteriores, porém, e eu sugiro fortemente que você tem uma compreensão muito boa sobre o material anterior (links no final deste artigo), bem como compreender os conceitos básicos do binário O que é a tecnologia binária explicado A tecnologia binária é explicada Dado que o binário é absolutamente fundamental para a existência de computadores, parece estranho que nunca tenhamos abordado o tópico antes - então hoje eu pensava em dar uma breve visão geral do que binário. Leia mais que eu escrevi na última vez. O que é um registro de deslocamento Um registro de deslocamento de saída, tecnicamente falando, recebe dados em série e os emite em paralelo. Em termos práticos, isso significa que podemos enviar rapidamente um monte de comandos de saída para o chip, dizer-lhe para ativar, e as saídas serão enviadas para os pinos relevantes. Em vez de iterar através de cada pino, simplesmente enviar a saída necessária para todos os pinos de uma só vez, como um único byte ou mais de informações. Se isso o ajudar a entender, você pode pensar em um registro de deslocamento como uma matriz de saídas digitais, mas podemos ignorar os comandos normais do digitalWrite e simplesmente enviar uma série de bits para ativá-los ou desativá-los. Como Funciona O registro de deslocamento que estaremos usando o 74HC595N incluído no kit de inicialização Oomlout necessita apenas de 3 pinos de controle. O primeiro é um relógio que você não precisa se preocupar muito sobre isso como as bibliotecas de série Arduino controlá-lo, mas um relógio é basicamente apenas um impulso onoff elétrica que define o ritmo para o sinal de dados. O pino de trinco é usado para informar o registro de deslocamento quando ele deve ligar e desligar suas saídas de acordo com os bits que acabamos de enviá-lo, isto é, prendendo-os no lugar. Finalmente, o pino de dados é onde nós enviamos os dados em série reais com os bits para determinar o estado onoff das saídas dos registradores de deslocamento. Todo o processo pode ser descrito em 4 etapas: Ajuste o pino de dados para alto ou baixo para o primeiro pino de saída no registro de deslocamento. Pulso do relógio para mudar os dados para o registro. Continue ajustando os dados e pulsando o relógio até que você tenha definido o estado necessário para todos os pinos de saída. Pulse o pino de trava para ativar a seqüência de saída. Implementação Você precisa dos seguintes componentes para este projeto: 7HC595N chip de registro de deslocamento 8 LEDS e resistores apropriados, ou o que você quiser para a saída para o usual breadboard, conectores e um básico Arduino E minha versão montada: Ive modificado o código original fornecido pela Ooolmout , Mas se você gostaria de tentar isso em vez disso, ele pode ser baixado completamente aqui. Explicação do código está incluído, para copiar e colar a coisa toda a partir de baixo ou pastebin para ler uma explicação do código. Bit-Shifting (Função OutputBytes) No primeiro loop exemplo outputBytes (), o código utiliza uma seqüência de 8 bits (um byte), que então desloca para a esquerda cada iteração do loop for. É importante notar que se você mudar mais do que é possível, o bit é simplesmente perdido. Bit-shifting é feito usando ltlt ou gtgt seguido pelo número de bits que você deseja mudar. Confira o exemplo a seguir e certifique-se de entender o que está acontecendo: Envio de inteiros em vez disso (Função OutputIntegers) Se você enviar um número inteiro para o registro de deslocamento em vez de um byte, ele simplesmente converterá o número em uma seqüência de bytes binários. Nesta função (uncomment no loop e upload para ver o efeito), temos um loop for que conta de 0-255 (o inteiro mais alto que podemos representar com um byte), e envia isso em vez disso. Ele basicamente conta em binário, então a seqüência pode parecer um pouco aleatória, a menos que seus LEDs sejam dispostos em uma longa linha. Por exemplo, se você ler o artigo explicado binário, você saberá que o número 44 será representado como 00101100, então os LEDs 3,5,6 vão se acender nesse ponto da seqüência. Daisy Chaining More Than One Shift Register A coisa notável sobre Shift Registers é que se eles são dados mais de 8 bits de informação (ou, no entanto grande seu registro é), eles mudarão os outros bits adicionais novamente. Isso significa que você pode conectar uma série deles juntos, empurrar em uma longa cadeia de bits, e tê-lo distribuído para cada registro separadamente, todos sem codificação adicional da sua parte. Embora nós não estarmos detalhando o processo ou os esquemas aqui, se você tiver mais de um registo de deslocamento você pode tentar o projeto do local oficial de Arduino aqui. Outros artigos na série: Thats até agora ir com registos de deslocamento hoje, como eu penso weve coberto muito. Como sempre, Id incentivá-lo a jogar com e ajustar o código, e sinta-se livre para fazer qualquer pergunta que você pode ter nos comentários, ou mesmo compartilhar um link para o seu impressionante deslocamento baseado projeto baseado. 9 comentários Escreva um comentário Últimos brindes Artigos Relacionados Subscrever a nossa Newsletter

No comments:

Post a Comment