Introdução ao Arduino

De Aulas
Revisão de 16h32min de 8 de novembro de 2022 por Admin (discussão | contribs) (→‎Motor CC =)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

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.

Arduino uno perspectivva.png

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:

Arduino pisca led.jpg

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

Arduino motor cc.png
#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:

Circuito uno motor de passo 5v.png
 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}