Inversão de rotação com relês para motor de corrente contínua Explicação de funcionamento: 1o Caso: Quando é enviado o comando “sudo outb 0x378 0” para a IHL paralela, todos os bits irão para o estado de nível baixo (0-GND-Terra-0V). Porém, a IHL paralela possui em sua saída o circuito integrado ULN2803, que inverte o estado lógico. Logo, o estado lógico de D0 e D1, será de nível lógico alto (1-5V). Os relês (R1 e R2) não irão comutar porque a polarização de suas bobinas estão com níveis lógicos alto, ou seja, R1 e R2 estão com 5V em ambos os lados de suas bobinas. Neste instante o motor irá ficar parado, porque ele está com nível lógico alto em ambos os lados fio vermelho (1-5V) e fio branco (1-5V). 2o caso: Quando é enviado o comando “sudo outb 0x378 1” para a IHL paralela, o bit D0 irá para o nível lógico alto. Porém, ao passar pelo inversor (ULN2803) o nível lógico irá para baixo (0-GND). Com isso, o relê (R1), que passa a polarizar a sua bobina (0V e 5V), aciona a chave de comutação, ou seja, o “C” (comum) que estava com o “NF” (Normalmente Fechado), muda para o “NA” (Normalmente Aberto). O relê (R2) não mudará de estado, porque sua bobina está polarizada com 5V em ambos os lados. Logo, o motor estará com nível baixo (0-GND) no fio branco e nível alto (1-5V) no fio vermelho, fazendo com que o motor gire para a direita. 3o caso: Quando é enviado o comando “sudo outb 0x378 2” para a IHL paralela, o bit D1 irá para o nível lógico alto. Porém, ao passar pelo inversor (ULN2803) o nível lógico irá para baixo (0-GND). Com isso, o relê (R2), que passa a polarizar a sua bobina (0V e 5V), aciona a chave de comutação, ou seja, o “C” (comum) que estava com o “NF” (Normalmente Fechado), muda para o “NA” (Normalmente Aberto). O relê (R1) não mudará de estado, porque sua bobina está polarizada com 5V em ambos os lados. Logo, o motor estará com nível alto (1-5V) no fio branco e nível baixo (0GND) no fio vermelho, fazendo com que o motor gire para a esquerda. 4o caso: Quando é enviado o comando “sudo outb 0x378 3” para a IHL paralela, os bits D0 e D1 irão para o nível lógico alto. Porém, ao passarem pelo inversor (ULN2803) os níveis lógicos irão para baixo (0-GND). Com isso, os relês (R1 e R2), que passam a polarizar as suas bobinas (0V e 5V), acionam a chave de comutação, ou seja, o “C” (comum) que estava com o “NF” (Normalmente Fechado), muda para o “NA” (Normalmente Aberto) em ambos os relês. Neste instante o motor irá ficar parado, porque ele está com nível lógico baixo em ambos os lados - fio vermelho (GND-0V) e fio branco (GND-0V). Exemplo de código fonte em shell script: #!/bin/bash #Danilo Rodrigues César #Licença GPL a=0 b=10 sudo outb 0x378 0 #motor parado – 1o caso while [ $a -lt $b ] #executa este processo 10 vezes. Compara o conteúdo da variável “a” com o conteúdo da variável “b”. Quando “a” for igual a 10 o processo termina, pois “a” terá o mesmo valor de “b”. Representado pelo caractere “<”, a comparação “-lt” significa “less than” (menor que). do sudo outb 0x378 1 #motor acionado – 2o caso sleep 20 #motor gira por 20 segundos para a direita sudo outb 0x378 2 #motor acionado – 3o caso sleep 20 #motor gira por 20 segundos para a esquerda ((a=a+1)) #incrementa de 1 em 1 até 10 sudo outb 0x378 3 #motor parado – 3o caso sleep 20 #motor parado por 20 segundos done sudo outb 0x378 0#motor parado – 1o caso Danilo Rodrigues César