Arduino - iniciação à linguagem C (servomotores)

18
Programação Eletrónic a + Espaço Arduino - Iniciação à linguagem C Servomotores

Transcript of Arduino - iniciação à linguagem C (servomotores)

Page 1: Arduino - iniciação à linguagem C (servomotores)

Programação

Eletrónica+Espaço

Arduino - Iniciação à linguagem C

Servomotores

Page 2: Arduino - iniciação à linguagem C (servomotores)

http://blocklyduino.github.io/BlocklyDuino/blockly/apps/blocklyduino/

Blocklyduino – Agora Tenta #1

Criar em Blocklyduino um programa que faça um servomotor (ligado na saída 11, por exemplo), passar ininterruptamente do ângulo 0º para o ângulo 180º e deste ângulo novamente para o ângulo 0º. Deve haver um intervalo de 1s entre cada movimento.

Page 3: Arduino - iniciação à linguagem C (servomotores)

Blocklyduino – Uma Solução Possível

Page 4: Arduino - iniciação à linguagem C (servomotores)

BlocklyDuino – Agora Experimenta

Page 5: Arduino - iniciação à linguagem C (servomotores)

BlocklyDuino – Agora Experimenta

Page 6: Arduino - iniciação à linguagem C (servomotores)

Arduino – Agora Experimentahttps://www.arduino.cc/en/Main/Software

Page 7: Arduino - iniciação à linguagem C (servomotores)

Utilização de livraria Servo.h

Cria um objeto para controlar um servo motor

Porta a que o servo está conectado

Servo.write(): envia para o servo o ângulo para onde se deve dirigir (caso

valor entre parêntesis < 200) ou o valor, em ms, do tempo que deve rodar

dirigir (caso valor entre parêntesis > 200)

Page 8: Arduino - iniciação à linguagem C (servomotores)
Page 9: Arduino - iniciação à linguagem C (servomotores)

Arduino – Agora Tenta #1

• Alterar o nome da variável associada ao objeto Servo para um nome mais geral, my_servo, por exemplo;

• Mudar o pino ao qual o motor está conectado (a livraria suporta que qualquer pino, digital ou analógico, seja usado para controlar o servo motor).

Page 10: Arduino - iniciação à linguagem C (servomotores)

Um

a So

luçã

o Po

ssív

el...

Page 11: Arduino - iniciação à linguagem C (servomotores)

Arduino – Agora Tenta #2

Adicionar ao circuito um interruptor de pressão e fazer com que o motor, inicialmente a 0º, passa para 90º e volte à posição inicial passado um determinado intervalo de tempo

(simulando uma porta ou uma cancela que se abre e volta a fechar).

Page 12: Arduino - iniciação à linguagem C (servomotores)

Um

a So

luçã

o Po

ssív

el...

Page 13: Arduino - iniciação à linguagem C (servomotores)

Arduino – Agora Tenta #3

Acrescentar um LED que pisque enquanto a porta se mantiver aberta.

Page 14: Arduino - iniciação à linguagem C (servomotores)

Um

a So

luçã

o Po

ssív

el...

Page 15: Arduino - iniciação à linguagem C (servomotores)

Arduino – Agora Tenta #4

Explora a função Tone() para arduino e descobre como, com um buzzer, criar

um sinal sonoro que indique que a porta está aberta.

Atenção: Ao usar a livraria Servo.h, deixamos de ter disponíveis todas as saídas PWM:

Page 16: Arduino - iniciação à linguagem C (servomotores)

Um

a So

luçã

o Po

ssív

el...

Page 17: Arduino - iniciação à linguagem C (servomotores)

Progamação em C – Resumo da Sessão #3Livraria usada• Servo.h

Permite que o arduino controle um servo motor. O servo motor pode ser ligado a qualquer um dos pinos de entrada / saída (entradas analógicas inclusivé).

Exemplo

Page 18: Arduino - iniciação à linguagem C (servomotores)

Progamação em C – Resumo da Sessão #3Funções a recordar

• Tone (pino, frequência) produz uma onda quadrada de uma dada frequência (Hz) num dado pino PWM;

• Tone (pino, frequência, duração) produz uma onda quadrada de uma dada frequência (Hz) num dado pino PWM durante um determinado tempo (ms);

• noTone (pino) Determina o fim da geração da onda quadrada definida pela função Tone().