11
Robótica
UMG
15
Robótica
UMG
52
Robótica
UMG
1
Robótica
UMG
4
Robótica
UMG
5
Robótica
UMG
3
Robótica
UMG
5
Robótica
UMG
6
Robótica
UMG
1
Robótica
UMG
Texto de pré-visualização
Motores A velocidade de rotação de um motor convencional Figura 1 normalmente é constante em uma determinada tensão continua de alimentação No entanto esse pa râmetro pode ser alterado se a técnica de PWM for empregada Figura 1 Motor convencional A simulação de um motor convencional do software UnoArduSim Figura 2 per mite também além desse controle de velocidade através do seu terminal PWM a in versão do sentido de rotação através do nível baixo sentido horário ou do nível alto sentido antihorário aplicado no seu terminal DIR Como o terminal ENC gera oito pulsos a cada volta do motor é possível utilizálo para contar a quantidade de giros realizados Figura 2 Simulação de um motor convencional no UnoArduSim Com o sketch apresentado no Código 1 é possível alterar a velocidade de um motor convencional MC1 a partir da tensão fornecida por um potenciômetro A cha ve CH1 controla o sentido de rotação horário ou antihorário enquanto que o sinal PWM em termos de porcentagem e a quantidade de voltas realizadas é mostrada no LCD Já com o botão BT1 é possível zerar o contador de giros Autor Édilus de Carvalho Castro Penido Pág 1 Arduíno Teoria Prática Área Computação Prof Édilus de Carvalho Castro Penido A função mapvariável a b x y é utilizada para alterar a faixa de valores de uma variável do intervalo de a até b para o intervalo de x até y No exemplo ela foi utilizada para adequar a faixa da conversão AD da tensão do potenciômetro 0 a 1023 para faixa permitida para o controle de sinais PWM 0 a 255 define MC1PWM 8 define MC1ENC 10 define MC1DIR 12 define BT1 2 define CH1 4 define EA1 A0 define LRS 44 define LEN 45 define LRW 46 define LD4 40 define LD5 41 define LD6 42 define LD7 43 include NativeLiquidCrystalh NativeLiquidCrystal lcdLRS LRW LEN LD4 LD5 LD6 LD7 unsigned int PWMnovo 0 PWMantigo 0 unsigned int voltasnovo 0 voltasantigo 0 pulsos 0 boolean auxiliar 0 void setup pinModeBT1 INPUT pinModeCH1 INPUT pinModeMC1ENC INPUT pinModeMC1PWM OUTPUT pinModeMC1DIR OUTPUT lcdbegin20 4 void loop digitalWriteMC1DIR digitalReadCH1 PWMnovo mapanalogReadEA1 0 1023 0 255 analogWriteMC1PWM PWMnovo if auxiliar 0 digitalReadMC1ENC 1 pulsos auxiliar 1 if digitalReadMC1ENC 0 auxiliar 0 voltasnovo pulsos 8 Autor Édilus de Carvalho Castro Penido Pág 2 if digitalReadBT1 1 pulsos 0 if PWMnovo PWMantigo voltasnovo voltasantigo lcdclear lcdsetCursor0 0 lcdprintPWM lcdprintPWMnovo lcdsetCursor0 1 lcdprintVoltas lcdprintvoltasnovo PWMantigo PWMnovo voltasantigo voltasnovo Código 1 Controle de um motor convencional O eixo de um motor de passo Figura 3 gira ângulos precisos quando seus ter minais são devidamente acionados Assim num motor com passo de 20º são neces sários 18 pulsos do controlador para que complete uma volta 20º x 18 360º Figura 3 Motor de passo A simulação de um motor de passo de dois terminais no software UnoArduSim é mostrada na Figura 4 Para utilizála é preciso incluir no código a biblioteca Step perh indicando o número de passos do motor e quais pinos do Arduino serão usa dos no seu controle Figura 4 Simulação de um motor de passo no UnoArduSim Com o sketch apresentado no Código 2 é possível usar os botões BT1 a BT4 para controlar um motor de passo MP1 da seguinte forma Autor Édilus de Carvalho Castro Penido Pág 3 o BT1 Girar um passo no sentido horário o BT2 Girar um passo no sentido antihorário o BT3 Girar dez passos no sentido horário o BT4 Girar dez passos no sentido antihorário define BT1 2 define BT2 3 define BT3 18 define BT4 19 define MP1P1 24 define MP1P2 25 define MP1Passo 20 include Stepperh Stepper MP1MP1Passo MP1P1 MP1P2 void setup pinModeBT1 INPUT pinModeBT2 INPUT pinModeBT3 INPUT pinModeBT4 INPUT pinModeMP1P1 OUTPUT pinModeMP1P2 OUTPUT MP1setSpeed20 void loop if digitalReadBT1 1 MP1step1 delay250 if digitalReadBT2 1 MP1step1 delay250 if digitalReadBT3 1 MP1step10 delay250 if digitalReadBT4 1 MP1step10 delay250 Código 2 Controle de um motor de passo Um servo motor Figura 5 é um atuador rotativo utilizado normalmente para o controle de posição na faixa de 0 a 180º A simulação de um servo motor no software Autor Édilus de Carvalho Castro Penido Pág 4 UnoArduSim é mostrada na Figura 6 Para utilizála é preciso incluir no código a bibli oteca Servoh Figura 5 Servo motores Figura 6 Simulação de um servo motor no UnoArduSim Com o sketch apresentado no Código 3 é possível alterar a posição de 0 a 180º de um servo motor SM1 a partir da tensão fornecida por um potenciômetro define SM1Pino 22 define EA1 A0 include Servoh Servo SM1 unsigned int posicao 0 void setup SM1attachSM1Pino void loop posicao mapanalogReadEA1 0 1023 0 180 SM1writeposicao Código 3 Controle de um servo motor Autor Édilus de Carvalho Castro Penido Pág 5 Ligações de Componentes no Simulador UnoArduSim a Motores Convencionais define MC1PWM 8 MC 1 Controle de Velocidade define MC1ENC 10 MC 1 Indicador de Rotação define MC1DIR 12 MC 1 Controle de Direção define MC2PWM 9 MC 2 Controle de Velocidade define MC2ENC 11 MC 2 Indicador de Rotação define MC2DIR 13 MC 2 Controle de Direção b Motores de Passo define MP1P1 24 MP 1 Pino 1 do Motor define MP1P2 25 MP 1 Pino 2 do Motor define MP1Passo 20 MP 1 Nº de Passos do Motor define MP2P1 47 MP 2 Pino 1 do Motor define MP2P2 48 MP 2 Pino 2 do Motor define MP2Passo 20 MP 2 Nº de Passos do Motor Para a simulação de um motor de passo no UnoArduSim devemos incluir a bibli oteca Stepperh no código e inicializála como mostrado abaixo include Stepperh Stepper MPxNº de Passos do Motor Pino 1 do Motor Pino 2 do Motor A velocidade de rotação do motor deve ser ajustada através da função setS peed com o valor de 20 como mostrado abaixo MPxsetSpeedVelocidade do Motor O número de passos numa rotação é definido através da função step sendo que valores positivos irão produzir uma movimentação no sentido horário e valores negati vos irão produzir uma movimentação no sentido antihorário c Servo Motores define SM1Pino 22 SM 1 Pino do Servo Motor define SM2Pino 23 SM 2 Pino do Servo Motor Para a simulação de um servo motor no UnoArduSim devemos incluir a bibliote ca Servoh no código e inicializála como mostrado abaixo include Servoh Servo SMx A indicação do pino de conexão com o servo motor é realizada através da função attach enquanto que a sua posição de 0 a 180º é definida através da função write Autor Édilus de Carvalho Castro Penido Pág 6
11
Robótica
UMG
15
Robótica
UMG
52
Robótica
UMG
1
Robótica
UMG
4
Robótica
UMG
5
Robótica
UMG
3
Robótica
UMG
5
Robótica
UMG
6
Robótica
UMG
1
Robótica
UMG
Texto de pré-visualização
Motores A velocidade de rotação de um motor convencional Figura 1 normalmente é constante em uma determinada tensão continua de alimentação No entanto esse pa râmetro pode ser alterado se a técnica de PWM for empregada Figura 1 Motor convencional A simulação de um motor convencional do software UnoArduSim Figura 2 per mite também além desse controle de velocidade através do seu terminal PWM a in versão do sentido de rotação através do nível baixo sentido horário ou do nível alto sentido antihorário aplicado no seu terminal DIR Como o terminal ENC gera oito pulsos a cada volta do motor é possível utilizálo para contar a quantidade de giros realizados Figura 2 Simulação de um motor convencional no UnoArduSim Com o sketch apresentado no Código 1 é possível alterar a velocidade de um motor convencional MC1 a partir da tensão fornecida por um potenciômetro A cha ve CH1 controla o sentido de rotação horário ou antihorário enquanto que o sinal PWM em termos de porcentagem e a quantidade de voltas realizadas é mostrada no LCD Já com o botão BT1 é possível zerar o contador de giros Autor Édilus de Carvalho Castro Penido Pág 1 Arduíno Teoria Prática Área Computação Prof Édilus de Carvalho Castro Penido A função mapvariável a b x y é utilizada para alterar a faixa de valores de uma variável do intervalo de a até b para o intervalo de x até y No exemplo ela foi utilizada para adequar a faixa da conversão AD da tensão do potenciômetro 0 a 1023 para faixa permitida para o controle de sinais PWM 0 a 255 define MC1PWM 8 define MC1ENC 10 define MC1DIR 12 define BT1 2 define CH1 4 define EA1 A0 define LRS 44 define LEN 45 define LRW 46 define LD4 40 define LD5 41 define LD6 42 define LD7 43 include NativeLiquidCrystalh NativeLiquidCrystal lcdLRS LRW LEN LD4 LD5 LD6 LD7 unsigned int PWMnovo 0 PWMantigo 0 unsigned int voltasnovo 0 voltasantigo 0 pulsos 0 boolean auxiliar 0 void setup pinModeBT1 INPUT pinModeCH1 INPUT pinModeMC1ENC INPUT pinModeMC1PWM OUTPUT pinModeMC1DIR OUTPUT lcdbegin20 4 void loop digitalWriteMC1DIR digitalReadCH1 PWMnovo mapanalogReadEA1 0 1023 0 255 analogWriteMC1PWM PWMnovo if auxiliar 0 digitalReadMC1ENC 1 pulsos auxiliar 1 if digitalReadMC1ENC 0 auxiliar 0 voltasnovo pulsos 8 Autor Édilus de Carvalho Castro Penido Pág 2 if digitalReadBT1 1 pulsos 0 if PWMnovo PWMantigo voltasnovo voltasantigo lcdclear lcdsetCursor0 0 lcdprintPWM lcdprintPWMnovo lcdsetCursor0 1 lcdprintVoltas lcdprintvoltasnovo PWMantigo PWMnovo voltasantigo voltasnovo Código 1 Controle de um motor convencional O eixo de um motor de passo Figura 3 gira ângulos precisos quando seus ter minais são devidamente acionados Assim num motor com passo de 20º são neces sários 18 pulsos do controlador para que complete uma volta 20º x 18 360º Figura 3 Motor de passo A simulação de um motor de passo de dois terminais no software UnoArduSim é mostrada na Figura 4 Para utilizála é preciso incluir no código a biblioteca Step perh indicando o número de passos do motor e quais pinos do Arduino serão usa dos no seu controle Figura 4 Simulação de um motor de passo no UnoArduSim Com o sketch apresentado no Código 2 é possível usar os botões BT1 a BT4 para controlar um motor de passo MP1 da seguinte forma Autor Édilus de Carvalho Castro Penido Pág 3 o BT1 Girar um passo no sentido horário o BT2 Girar um passo no sentido antihorário o BT3 Girar dez passos no sentido horário o BT4 Girar dez passos no sentido antihorário define BT1 2 define BT2 3 define BT3 18 define BT4 19 define MP1P1 24 define MP1P2 25 define MP1Passo 20 include Stepperh Stepper MP1MP1Passo MP1P1 MP1P2 void setup pinModeBT1 INPUT pinModeBT2 INPUT pinModeBT3 INPUT pinModeBT4 INPUT pinModeMP1P1 OUTPUT pinModeMP1P2 OUTPUT MP1setSpeed20 void loop if digitalReadBT1 1 MP1step1 delay250 if digitalReadBT2 1 MP1step1 delay250 if digitalReadBT3 1 MP1step10 delay250 if digitalReadBT4 1 MP1step10 delay250 Código 2 Controle de um motor de passo Um servo motor Figura 5 é um atuador rotativo utilizado normalmente para o controle de posição na faixa de 0 a 180º A simulação de um servo motor no software Autor Édilus de Carvalho Castro Penido Pág 4 UnoArduSim é mostrada na Figura 6 Para utilizála é preciso incluir no código a bibli oteca Servoh Figura 5 Servo motores Figura 6 Simulação de um servo motor no UnoArduSim Com o sketch apresentado no Código 3 é possível alterar a posição de 0 a 180º de um servo motor SM1 a partir da tensão fornecida por um potenciômetro define SM1Pino 22 define EA1 A0 include Servoh Servo SM1 unsigned int posicao 0 void setup SM1attachSM1Pino void loop posicao mapanalogReadEA1 0 1023 0 180 SM1writeposicao Código 3 Controle de um servo motor Autor Édilus de Carvalho Castro Penido Pág 5 Ligações de Componentes no Simulador UnoArduSim a Motores Convencionais define MC1PWM 8 MC 1 Controle de Velocidade define MC1ENC 10 MC 1 Indicador de Rotação define MC1DIR 12 MC 1 Controle de Direção define MC2PWM 9 MC 2 Controle de Velocidade define MC2ENC 11 MC 2 Indicador de Rotação define MC2DIR 13 MC 2 Controle de Direção b Motores de Passo define MP1P1 24 MP 1 Pino 1 do Motor define MP1P2 25 MP 1 Pino 2 do Motor define MP1Passo 20 MP 1 Nº de Passos do Motor define MP2P1 47 MP 2 Pino 1 do Motor define MP2P2 48 MP 2 Pino 2 do Motor define MP2Passo 20 MP 2 Nº de Passos do Motor Para a simulação de um motor de passo no UnoArduSim devemos incluir a bibli oteca Stepperh no código e inicializála como mostrado abaixo include Stepperh Stepper MPxNº de Passos do Motor Pino 1 do Motor Pino 2 do Motor A velocidade de rotação do motor deve ser ajustada através da função setS peed com o valor de 20 como mostrado abaixo MPxsetSpeedVelocidade do Motor O número de passos numa rotação é definido através da função step sendo que valores positivos irão produzir uma movimentação no sentido horário e valores negati vos irão produzir uma movimentação no sentido antihorário c Servo Motores define SM1Pino 22 SM 1 Pino do Servo Motor define SM2Pino 23 SM 2 Pino do Servo Motor Para a simulação de um servo motor no UnoArduSim devemos incluir a bibliote ca Servoh no código e inicializála como mostrado abaixo include Servoh Servo SMx A indicação do pino de conexão com o servo motor é realizada através da função attach enquanto que a sua posição de 0 a 180º é definida através da função write Autor Édilus de Carvalho Castro Penido Pág 6