Você está na página 1de 18

Espaço

Programação + Eletrónica
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.
Blocklyduino – Uma Solução Possível
BlocklyDuino – Agora Experimenta
BlocklyDuino – Agora Experimenta
Arduino – Agora Experimenta
https://www.arduino.cc/en/Main/Software
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)
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).
Uma Solução Possível...
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).
Uma Solução Possível...
Arduino – Agora Tenta #3

Acrescentar um LED que pisque enquanto a


porta se mantiver aberta.
Uma Solução Possível...
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:
Uma Solução Possível...
Progamação em C – Resumo da Sessão #3
Livraria 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
Progamação em C – Resumo da Sessão #3
Funçõ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().