Esta também não foi uma aula testada com alunos, mas uma exploração do controlo de motores dc através de Scratch.
O motor dc (ou motor de corrente contínua) é muito vulgar em equipamentos como impressoras, carrinhos de brinquedo a pilhas e outros brinquedos baratos, pelo que é extremamente fácil ter acesso a um.
O controlo deste motores é muito simples: ligam-se os cabos do motor a uma fonte de alimentação contínua (uma pilha, por exemplo) apropriada, de acordo com as caraterísticas do motor usado, e o motor começa a girar. Trocando a polarização da fonte, o motor girará em sentido contrário.
O controlo deste tipo de motor com arduino não é, no entanto, tão simples como seria de supor porque, por um lado, este motor exige mais corrente que aquela que o arduino consegue debitar e, por outro, os motores geram correntes de indução que podem danificar o circuito caso este não esteja devidamente preparado.
Para que a corrente elétrica seja suficiente, a ligação do motor deve ser feita recorrendo a uma fonte de alimentação externa (eu usei uma pilha vulgar de 9V).
E onde entra o controlo do motor? Através de um pequeno componente chamado FET (Field Effect Transistor), da família dos transístores e cuja função é permitir a passagem de corrente entre dois pinos quando um terceiro é ativado. O funcionamento de um transístor pode ser comparado ao de uma torneira de monocomando que, ao ser aberta, deixa passar a água sempre num único sentido.
O controlo do FET foi feito usando uma das saídas analógicas disponíveis no S4A, o pino 9.
Na verdade, o arduino não tem saídas analógicas na verdadeira acepção da palavra. A saída é sempre 0V ou 5V. As saídas ditas analógicas são de facto saídas PWM, que enviam sinais pulsados de acordo com o valor analógico indicado (entre 0 e 255). A variação da frequência dos impulsos vai resultar em valores eficazes de tensão variáveis. No caso concreto, o motor só será alimentado pela pilha de 9V de acordo com os impulsos gerados no pino de controlo do FET.
Confusos? Experimentando tudo vai parecer mais simples. O díodo colocado aos extremos do motor impede a circulação em sentido contrário de correntes geradas pelo motor (o díodo, que é um componente polarizado, só deixa passar a corrente num sentido).
Para fazer a inversão do motor, usei o L293, um circuito integrado preparado já para controlar motores dc e que nos descomplica bastante a vida (a outra hipótese era conceber um circuito algo complicado com vários díodos).
Ainda tentei fazer um pequeno elevador com o circuito que contruí, mas este tipo de motores, ao contrário dos servo motores, não tem a capacidade de manter a posição quando desliga, pelo que se tornou inviável para essa situação.
Deixo então a minha proposta de trabalho para controlo de motores dc recorrendo ao Scratch...
...o circuito esquemático do último exercício proposto...
...e um pequeno vídeo com o circuito de comando do motor dc em funcionamento (o gacho está um pouco ridículo, reconheço, mas o objetivo foi tornar possível a perceção da inversão de sentido):
Estou precisando de ajuda. Consegui fazer o motor funcionar mas não obtive sucesso em controlá-lo com o scratch. Então gostaria de saber, além do pino 9, os dois fios vermelho e azul que estão no esquema, são para serem colocados em qual entrada do Arduíno.
ResponderEliminarObrigada.
Olá Evelyn! Não sei se terei percebido a questão. Está a falar dos fios azul e vermelho que fazem a alimentação da breadboard? Caso seja isso, tem razão em ter dúvidas - eu costumo identificá-los como GND e 5V mas parece que me esqueci de o fazer nestes slides...enfim, caso seja isso, o fio azul serve para manter todos os pontos da respetiva linha horizontal a 0V (e por isso deve ser ligado à saída GND do arduino) e o fio vermelho serve para manter todos os pontos da respetiva linha horizontal a 5V (e por isso deve ser ligado á saída 5V do arduino). Espero ter esclarecido a questão. Caso ainda assim não consiga resolver o seu problema, não hesite em contactar!
EliminarColoquei analog 9 na programação e conectei os fios de acordo com o esquema. No Scratch os valores dos analogs estão alterando normalmente mostrando que há comunicação entre o Arduíno e o S4A, entretanto, a programação não altera o funcionamento do motor. Não consigo perceber onde estou errando...
ResponderEliminarPor partes:
Eliminar1. O MOSFET usado é igual ao do esquema? É importante que tenha a mesma pinagem.
2. O MOSFET que controla o motor está mesmo ligado à porta digital 9?
3. Depois do circuito montado o motor roda?
4. Alterando o valor do bloco "Analog 9" entre 0 e 255, como se comporta o motor - não altera a sua velocidade?
5. Terá mesmo clicado na bandeirinha do Scratch para atualizar o programa?
Eventualmente, pode mandar uma foto para o email do projeto arduinonaescola@gmail.com para nós vermos. Boas experiências!
O MOSFET é o IRF 540 não achei o 520 e disseram-me que este é similar Será que é este o problema?
ResponderEliminar2.Sim
3. Sim
4. Não
5.Sim
Muito obrigada, estou feliz e grata pelo apoio dado.
Evelyn, sem uma foto do circuito, não me ocorre mais erro possível, a não ser o díodo. Está devidamente polarizado?
ResponderEliminarOk. Obrigada. Irei enviar.
ResponderEliminarEu queria ser seu ajudante me liga 84284371
ResponderEliminar