Mudanças entre as edições de "Introdução ao Arduino"
Linha 73: | Linha 73: | ||
Agora resta tentar um um ambiente real de prototipagem utilizando o Arduino. | Agora resta tentar um um ambiente real de prototipagem utilizando o Arduino. | ||
− | = Motor CC | + | = Motor CC = |
− | <center>[[Image:Arduino_motor_cc.png]]</center> | + | <center>[[Image:Arduino_motor_cc.png|700px]]</center> |
<syntaxhighlight lang=c++> | <syntaxhighlight lang=c++> |
Edição atual tal como às 16h32min de 8 de novembro de 2022
Links relacionados: Programação em C
Descrição
O Arduino é uma plataforma de prototipagem eletrônica com especificações de hardware livre com suporte de entrada/saída embutido e programação em C/C++. O objetivo do projeto é criar ferramentas acessíveis, de baixo custo, flexíveis e de fácil utilização.
Uma placa Arduino pode, em geral, ser composta por um controlador, algumas linhas digitais e analógicas de Entrada/Saída e uma interface serial ou USB para se ligar ao computador hospedeiro. O computador hospedeiro é utilizado para interagir em tempo real com o Arduino e para criar e carregar os programas na placa. Pode-se conectar diversos dispositivos como sensores e receptores no Arduino para a implementação de projetos.
Um código para Arduino possui pelo menos duas funções básicas, a função setup() que é utilizada para configurar as portas, inicializar variáveis globais e outros, e a função loop() que rodará o comportamento do dispositivo. Quando o código do algoritmo da função loop termina, o ponteiro de execução do código retorna para a primeira linha da função loop().
1void setup()
2{
3 pinMode(10,OUTPUT); // Configura a porta 10 como saída
4}
5
6void loop()
7{
8 digitalWrite(10,HIGH); // Acende um led na porta 10
9 delay(1000); // Aguarda um tempo
10 digitalWrite(10,LOW); // Desliga um led na porta 10
11 delay(1000);
12}
Ambiente de Simulação
O tinkercad é um ambiente de simulação para várias aplicações, incluindo Arduino. Vamos implementar o seguinte hardware para fazer uma LED piscar:
Primeiramente vamos utilizar o código já definido anteriormente. Para isso, vamos baixar o software (IDE) para editar nosso código. Essa IDE já valida e envia nosso código ao dispositivo conectado ao nosso computador.
Depois, vamos colocar uma nova LED e tentar algo um pouquinho diferente:
1#define LONG 0
2#define SHORT 1
3
4void setup()
5{
6 pinMode(8, OUTPUT);
7 pinMode(9, OUTPUT);
8}
9
10void set(int timetype, int pin)
11{
12 digitalWrite(pin, HIGH);
13 delay(1000);
14 digitalWrite(pin, LOW);
15 if (timetype == LONG) {
16 delay(1000);
17 } else {
18 delay(500);
19 }
20}
21
22void loop()
23{
24 set(SHORT, 8);
25 set(SHORT, 8);
26 set(SHORT, 8);
27 set(LONG, 9);
28 set(SHORT, 8);
29 set(LONG, 9);
30 set(SHORT, 8);
31 set(LONG, 9);
32}
Agora resta tentar um um ambiente real de prototipagem utilizando o Arduino.
Motor CC
#define PIN_MOTOR 3
float motor;
void setup ()
{
Serial.begin (9600);
}
void loop()
{
motor = analogRead(A0)/4;
analogWrite (PIN_MOTOR, motor);
Serial.print("Motor:");
Serial.println(motor);
}
Motor de Passo
Vamos utilizar o diagrama e o código abaixo para nosso projeto:
1#include <Stepper.h>
2
3const int stepsPerRevolution = 500;
4
5//Inicializa a biblioteca utilizando as portas de 8 a 11 para
6//ligacao ao motor
7Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
8
9void setup()
10{
11 //Determina a velocidade inicial do motor
12 myStepper.setSpeed(60);
13}
14
15void loop()
16{
17 //Gira o motor no sentido horario a 90 graus
18 for (int i = 0; i<=3; i++)
19 {
20 myStepper.step(-512);
21 delay(2000);
22 }
23
24 //Gira o motor no sentido anti-horario a 120 graus
25 for (int i = 0; i<=2; i++)
26 {
27 myStepper.step(682);
28 delay(2000);
29 }
30
31 //Gira o motor no sentido horario, aumentando a
32 //velocidade gradativamente
33 for (int i = 10; i<=60; i=i+10)
34 {
35 myStepper.setSpeed(i);
36 myStepper.step(40*i);
37 }
38 delay(2000);
39}