• Welcome to LusoRobótica - Robótica em Português.
 

[Arduino] Tutorial - Mux para reduzir nº de PWM's no controlo de uma Ponte H

Started by metRo_, 06 de February de 2009, 18:04

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

metRo_

Olá,
Aqui fica um tutorial para explicar o porquê de utilizar um mux para controlar uma ponte H. Este tutorial vem no seguimento da criação da Lusorobotica Motor Board.
Espero que gostem.

[Arduino] Tutorial - Mux para reduzir nº de PWM's no controlo de uma Ponte H

Abraços

microbyte


TigPT

Parabéns metRo_, está muito bom!

Exemplos de MUXs:

74LS157
74LS153
74LS151

metRo_


TigPT

Já alojei o novo e mudei o link deste post para o do LusoRobótica.

Mais uma vez, excelente trabalho ;)

Jay_OR

Gostei bastante do tutorial, mas fiquei com uma duvida.
Temos que usar MUX de diferentes modelos, para que ao serem ligados na saída digital 7 um deles reaja ao selector HIGH (1) e outro ao LOW (0)?

Não sei se me fiz entender, mas vou dar um exemplo absurdo, usar um 74LS157 para actuar em HIGH e um 74LS153 para LOW?

EDIT: Meti-me a pensar nisto quando fui para o trabalho e acabei por entender, estava a fazer uma confusão dos diabos num copo de agua. xD
Afinal de contas basta usar 2 MUX do mesmo modelo, visto que um deles reage ao HIGH e ou outro ao LOW do pino 7.

metRo_

Os dois muxs que uso são iguais não sei se isto ajuda. Não percebi muito bem a tua duvida.

maurosmartins

Viva pessoal!

metRo_, o tutorial está mto fixe, mas se calhar não é preciso meter mais hardware! para controlar um motor basta um sinal de PWM, e dois pinos digitais para a direcção, ou 1 se lá quiserem meter uma porta not.

meter o mux acho que não tem mta vantagem.

Cumprimentos, Mauro.

metRo_

Quote from: maurosmartins on 21 de July de 2010, 00:04
Viva pessoal!

metRo_, o tutorial está mto fixe, mas se calhar não é preciso meter mais hardware! para controlar um motor basta um sinal de PWM, e dois pinos digitais para a direcção, ou 1 se lá quiserem meter uma porta not.

meter o mux acho que não tem mta vantagem.

Cumprimentos, Mauro.

Pois em vez de actuar nos sinais, dizes para actuar nos enables né? Tenho que dar uma vista de olhos no datasheet para ver o diagrama da ponte para ver se é solução não tem nenhum inconveniente.

maurosmartins

Ei, sim é isso!

Acho k não tem inconveniente, uso sempre assim e já vi em dezenas de esquemas a usar assim também.

Cumprimentos, Mauro.

Jay_OR

metRo_ acabei por entender o problema que estava a colocar no tópico, e já editei o meu post em cima.

maurosmartins a vantagem que eu vejo no MUX é que assim apenas tens que usar uma porta PWM e outra digital, em quanto da forma que falas teríamos que usar uma porta PWM e duas digitais. Em projectos simples e que não precisem de muitas portas é uma solução mais económica,  mas se fizermos uso de mais portas o MUX torna-se muito vantajoso.

Se a solução do maurosmartins não tiver nenhum inconveniente, acho que deveria ser adicionada ao tutorial, é capaz de dar em alguns casos, um certo jeito.

maurosmartins

Olá pessoal.

Jay_OR, também podemos usar só uma porta digital, mas para isso precisamos de adicionar uma porta not, que pode ser feita com um 7404, ou de outra forma com um transístor NPN e uma resistência de pull-up (ou um PNP e uma pull-down). Desta forma utiliza-se uma porta digital uma gate not e uma de PWM, ao contrário de duas de PWM e um mux.

As duas são válidas, mas acho a minha mais simples (suspeito...  ;)   )


Cumprimentos, Mauro.

Jay_OR

Seria possível eu controlar 18 servos, através de MUX's com um Arduino Duemilanove?

Comprei 4 MUX's SN74LS257BN, mas não estou a entender o datasheet, por o que entendi com um único destes posso alternar entre 4 saidas e preciso de 4 selectores? Mas para fazer o numero 4 (100 em binário) apenas preciso de 3 selectores. Ou estarei a entender isto de modo errado? =S

senso

Para usares um multiplexer com 4 saidas, só precisas de dois bits/dois pinos de controlo porque:
00 Saida 0
01 Saida 1
10 Saida 2
11 Saida 3

Não sei se usar multipexers funciona muito bem a comandar servos, se for só unica e exclusivamente para controlar servos e não vais usar a comunicação serial então podes usar 13 pinos digitais mais os 6 analógicos, que dá um total de 19 pinos, e penso que as bibliotecas que existem já permitem fazer ppm(sinal que controla os servos) em todos os pinos do arduino, se não o melhor é talvez usar um micro que receba dados por serial ou i2c para reduzir os pinos usados e transformar esse micro num controlador dedicado de servos.
Avr fanboy

Jay_OR

Pois já procurei no fórum, mas não encontrei nenhum esquema com este MUX, vou andar as cegas a liga-lo. =S

Não quererás dizer 14 pinos digitais + 6 analógicos? (O pino 0 também se conta)

Se existisse uma biblioteca para converter todos os pinos em PWM era mesmo o ideal, será que existem mesmo?

Pois mudar de micro acabavam-se os problemas, mas não quero estar a investir num novo micro. Por isso queria arranjar uma solução mais barata. =X