View
214
Download
0
Category
Preview:
Citation preview
7/22/2019 I - Apresentao Prtica do Arduino
1/26
Realizao:COLGIO SANTA EMLIA
NOME:
7/22/2019 I - Apresentao Prtica do Arduino
2/26
1
O que o Arduino?
O Arduino um projeto totalmente abertode prottipos de eletrnica baseados numaplataforma de hardware e software flexvel e defcil utilizao. destinado a artistas, designers,hobbyistas e qualquer tipo de pessoa
interessada em criar objetos ou ambientesinterativos. um projeto que engloba software ehardware e tem como objetivo fornecer umaplataforma fcil para prototipao de projetosinterativos, utilizando um microcontrolador. Elefaz parte do que chamamos de computaofsica: rea da computao em que o softwareinterage diretamente com o hardware, tornandopossvel integrao com sensores, motores eoutros dispositivos eletrnicos.
O Arduino pode perceber o ambiente porreceber informao de uma grande variedade de
sensores, e pode estimular o ambientecontrolando luzes, motores, e outros atuadores.A parte de hardware do projeto, uma
placa que cabe na palma da mo, umcomputador como qualquer outro: possuimicroprocessador, memria RAM, memria flash(para guardar o software), temporizadores,contadores, dentre outras funcionalidades.Atualmente, o projeto est na verso Uno, pormmuitos Arduinos encontrados hoje so da versoDuemilanove (2009, em italiano), que possui umclock de 16 MHz, 2 Kb de memria RAM, 32 Kbde memria flash, 14 portas digitais e 6 entradasanalgicas.
O microcontrolador em que se baseia(ATMEL) programvel usando a linguagemArduino (baseada em C/C++), e tambm aceitacdigo diretamente em C/C++, bem como oambiente do Arduino que baseado emProcessing.
Normalmente, necessrio construir oscircuitos para as entradas e sadas do Arduino, oque permite flexibilidade e uma grande variedade
de solues para um mesmo problema. Muitosprojetos para Arduino esto disponveis nainternet (o prprio site do Arduino mantm umfrum e um blog para os usurios do sistema),facilitando o aprendizado e a troca deinformaes entre os construtores.
Os projetos em Arduino podem ser nicosou podem comunicar com outros circuitos, ou atmesmo com outros softwares em umcomputador (por exemplo, Java,Flash,Processing, MaxMSP).
As placas podem ser montadas mo ou
serem compradas montadas, e o software podeser obtido gratuitamente.Como o Arduino um projeto aberto,
diversas empresas fabricam e disponibilizam
suas placas no mercado, como o Freeduino,Seeduino, Roboduino, Pinguino e os brasileirosSeverino e Brasuino.
Esta apostila foi baseada em diversosprojetos disponveis na internet.
So referncias importantes:
www.arduino.cc
Site do projeto Arduino. Permite o
download do ambiente de programao econtm referncias e tutoriais para iniciantes,alm de manter um frum e um blog
www.viaspositronicas.blogspot.com
Blog mantido por diversas pessoasligadas robtica educacional, de vriaslocalidades do pas. Contm informaessobre diversas plataformas e campeonatos.
www.earthshineEelectronics.com
Disponibiliza para download o Thecomplete beginners guide to the Arduino,uma das principais referncias para iniciantes(em ingls).
7/22/2019 I - Apresentao Prtica do Arduino
3/26
7/22/2019 I - Apresentao Prtica do Arduino
4/26
3
Os pinos de energia so os seguintes:
VIN. Equivale tenso de entrada daplaca Arduino quando utiliza uma fonteexterna (diferentemente dos 5 volts daconexo USB ou outras fontesreguladas). Voc pode fornecer energiaatravs deste pino, ou, se fornecer uma
tenso atravs do plug, obter a mesmatenso atravs deste pino. 5V. Fornece a tenso regulada para o
microcontrolador e outros componentesda placa.
3V3. Fornece uma tenso de 3.3 Voltsgerada pelo chip FTDI (on-board). Acorrente mxima de 50 mA.
GND.Pinos-terra.
Memria
O ATmega1280 possui 128 KB dememria flash para armazenar cdigos (dosquais 4 KB so utilizados para bootloader), 8 KBde SRAM e 4 KB of EEPROM (os quais podemser acessados utilizando a EEPROM library).
Entradas e Sadas
Cada um dos 54 pinos digitais do Mega podeser usado como uma entrada ou sada, usandoas funes pinMode (), digitalWrite (), e
digitalRead (). Eles operam com 5 volts. Cadapino pode fornecer ou receber um mximo de40 mA e tem um resistor pull-up interno(desconectado por padro) de 20-50 kOhms.Alm disso, alguns pinos tm funesespecializadas:
Serial: 0 (RX) e 1 (TX); Serial 1: 19(RX) e 18 (TX); Serial 2: 17 (RX) e 16(TX); Serial 3: 15 (RX) e 14 (TX). Usadopara receber (RX) e transmitir dados(TX) TTL serial. Pinos 0 e 1 so tambm
conectados aos pinos correspondentesdo chip FTDI USB-to-TTL Serial. Interrupes externas: 2 (interrupo
0), 3 (interrupo 1), 18 (interrupo5), 19 (interrupo 4), 20 (interromper3), e 21 (interrupo 2). Estes pinospodem ser configurados para dispararuma interrupo por um valor baixo, umaborda de subida ou queda, ou umaalterao no valor.
PWM: 0 at 13.Fornecer de 8 bits desada PWM com a funo analogWrite ().
SPI: 50 (MISO), 51 (MOSI), 52 (SCK),53 (SS). Estes pinos suportamcomunicao SPI, que, emborafornecida pelo hardware subjacente, no
est includa na linguagem Arduino. Ospinos SPI tambm so divididas sobre ocabealho ICSP, que fisicamentecompatvel com a Duemilanove eDiecimila.
LED: 13. H um built-in LED conectadoao pino digital 13. Quando o pino estem HIGH o LED est ligado, quando o
pino LOW, ele est desligado. I2C: 20 (SDA) e 21 (SCL). Suporte decomunicao (TWI) I2C usando abiblioteca Wire (documentao no siteFiao). Note que estes pinos no estono mesmo local que os pinos I2C noDuemilanove ou Diecimila.
A Mega tem 16 entradas analgicas, cada umadas quais com 10 bits de resoluo (isto , 1024valores diferentes). Por padro, eles medem at5 volts, embora seja possvel mudar o limite
superior de sua faixa usando o pino AREF efuno analogReference ().
H um par de pinos diferentes na placa:
AREF. Tenso de referncia para asentradas analgicas. Usado comanalogReference ().
Reset. Trazer esta linha LOW pararesetar o microcontrolador. Tipicamenteusado para adicionar um boto de resetpara escudos que bloqueiam a uma notabuleiro.
Comunicao
O Arduino Mega tem uma srie de facilidadespara se comunicar com um computador, outroArduino ou outros microcontroladores. OATmega1280 fornece quatro UARTs hardwarepara comunicao serial TTL (5V). UmFT232RL FTDI nos canais de bordo de umadessas atravs de USB e os drivers FTDI
(includo com o software Arduino) fornece umaporta COM virtual para software no computador.O software Arduino inclui um monitor serial quepermite que dados simples de texto a serenviados de e para a placa Arduino. O RX e TXLEDs na placa pisca quando os dados estosendo transmitidos pelo chip FTDI e conexoUSB para o computador (mas no para acomunicao serial nos pinos 0 e 1).
Uma biblioteca Software Serial permitecomunicao serial em qualquer um dos pinos
digitais do Mega.
O ATmega1280 tambm suporta comunicaoI2C (TWI) e SPI. O software Arduino inclui uma
7/22/2019 I - Apresentao Prtica do Arduino
5/26
4
biblioteca Wire para simplificar o uso dobarramento I2C.
Programao
O Arduino Mega pode ser programado com osoftware Arduino (download).
O ATmega1280 sobre o Arduino Mega vem comum bootloader que permite envio de novoscdigos sem o uso de um programador dehardware externo. Ele se comunica atravs doprotocolo STK500 original (de referncia,arquivos de cabealho C).
Voc tambm pode ignorar o bootloader eprogramar o microcontrolador atravs do ICSP(In-Circuit Serial Programming) cabealho.
Reincio automtico (software)
O Arduino Mega projetado de uma maneiraque permite que ele seja reiniciado pelosoftware rodando em um computadorconectado. Uma das linhas de hardware decontrole de fluxo (DTR) do FT232RL conectado linha de reset do ATmega1280atravs de um capacitor de 100 nanofarad.Quando esta linha afirmada (rebaixada), alinha de reset cai o tempo suficiente para reporo chip. O software Arduino usa esse recurso
para permitir que voc envie o cdigo,simplesmente pressionando o boto de uploadno ambiente Arduino. Isto significa que obootloader pode ter um tempo mais curto, comoo rebaixamento do DTR pode ser bemcoordenado com o incio do upload.
Essa configurao tem outras implicaes.Quando a Mega conectado a um computadorrodando Mac OS X ou Linux, ele redefine acada vez que uma conexo feita com osoftware (via USB). Para o seguinte meio
segundo ou menos, o bootloader est sendoexecutado no Mega. Embora seja programadopara ignorar dados mal formados (ou seja, nadaalm de um upload de um novo cdigo), que irinterceptar os primeiros bytes de dadosenviados para o conselho depois que umaconexo aberta. Se um programa rodando naplaca recebe um tempo de configurao ououtros dados quando ele comea a, certifique-se que o software com o qual comunica espera
um segundo depois de abrir a conexo e antesde enviar esses dados.
A Mega tem uma trilha que pode ser cortadapara desabilitar o auto-reset. As almofadas decada lado do trao pode ser soldada emconjunto para reativ-lo. Est identificada como"RESET-PT". Voc tambm pode ser capaz de
desativar o auto-reset conectando um resistor110 ohm de 5 V para a linha de reset, veja estetpico do frum para mais detalhes.
Proteo de sobrecorrente USB
O Arduino Mega tem um polifusvel reajustvelque protege as portas USB do seu computadora partir de shorts e sobrecorrente. Embora amaioria dos computadores fornea sua prpriaproteo interna, o fusvel fornece uma camadaextra de proteo. Se mais de 500 mA
aplicada porta USB, o fusvel irautomaticamente quebrar a ligao at a curtoou sobrecarga seja removida.
Caractersticas Fsicas e de Compatibilidade
O comprimento mximo e a largura do PCBMega so 4 e 2.1 polegadas respectivamente,com o conector USB e conector de energia,ultrapassam a dimenso anterior. Trs furospermitem que a placa seja ligada a uma
superfcie ou case. Note que a distncia entreos pinos digitais 7 e 8 de 3 mm, e no ummltiplo do espaamento de 2 mm dos outrospinos.
A Mega projetado para ser compatvel com amaioria dos escudos projetado para o Diecimilaou Duemilanove. Pinos digitais 0-13 (e asadjacentes AREF e pinos GND), entradasanalgicas 0-5, o cabealho do poder, ecabealho ICSP esto todos em locaisequivalentes. Alm disso, o UART principal
(porta serial) est localizado nos mesmos pinos(0 e 1), assim como as interrupes externas 0e 1 (pinos 2 e 3, respectivamente). SPI estdisponvel atravs do cabealho ICSP emambos os Mega e Duemilanove / Diecimila.Note-se que I2C no est localizado nosmesmos pinos no Mega (20 e 21) como oDuemilanove / Diecimila (entradas analgicas 4e 5)
7/22/2019 I - Apresentao Prtica do Arduino
6/26
5
Outros tipos de Arduino
Arduino UNO Arduino ADK
Arduino Mega 2560 Arduino BT400
Arduino Nano Arduino Pro Arduino Mini
Arduino Fio ArduinoLilyPad
7/22/2019 I - Apresentao Prtica do Arduino
7/26
6
01. LED Piscante
Neste projeto, voc aprender a criar um circuito simples usando um LED e um resistor e o far piscar.
O que voc vai precisar:01 placa Arduino Mega02 cabos jumpers01 resistor 220
01 LED
Montagem sugerida
Programao sugerida
int ledPin = 10; // define a porta em que o LED est conectado
void setup(){
pinMode (ledPin, OUTPUT); // define o LED como atuador}
//essa parte da programao faz com que ela se repitavoid loop(){
digitalWrite (ledPin, HIGH); // liga o LEDdelay (1000); // espera por 1000 milisegundos
digitalWrite (ledPin, LOW); // desliga o LEDdelay (1000); // espera por 1000 milisegundos
}
7/22/2019 I - Apresentao Prtica do Arduino
8/26
7
Detalhando um pouco mais
ResistorUm resistor um dispositivo eletrnico capaz de limitar a passagem de uma corrente eltrica por
um circuito eltrico. Os resistores so identificados atravs de um cdigo de linhas coloridas.
LED (Light Emitting Diode)LEDs so dispositivos eletrnicos que emitem luz pela passagem
de uma pequena corrente eltrica. Por isso, necessrio conectar umresistor ao LED para evitar sobrecorrente. Um LED s permite passagemde luz em um sentido. Portanto, necessrio identificar os plos para
conectar o LED corretamente dentro do circuito eletrnico.
Alterando o cdigo1 Altere o intervalo de ligar e desligar o LED para um valor definido por voc.2 Altere o valor do delay para 50 milisegundos. O LED estar desligando e acendendo?
7/22/2019 I - Apresentao Prtica do Arduino
9/26
8
02. Sinalizador de Cdigo Morse
Neste projeto ns vamos fazer o mesmo circuito do projeto anterior, mas usaremos algunscdigos diferentes para fazer o LED transmitir uma mensagem em Cdigo Morse. Nesse caso, vamosfazer o LED sinalizar as letras S.O.S., que o sinal mais conhecido deste cdigo (foi utilizado pelostripulantes do Titanic para transmitir seu pedido de socorro).
(SOS: A letra S consiste de trs sinais breves e letra O, de trs sinais longos)
O que voc vai precisar saber: Sinais de comparao
== (semelhante a)!= (diferente de)< (menor que)> (maior que)= (maior ou igual a)
Programao Sugerida
int ledPin = 10; // LED conectado ao pino 10
void setup(){
pinMode (ledPin, OUTPUT); // define a porta digital como output}
void loop(){
for (int x=0; x
7/22/2019 I - Apresentao Prtica do Arduino
10/26
9
Detalhando um pouco mais
A funo forA funo forestabelece um loop enquanto um teste de comparao for verdadeiro.Observe a declarao da funo no programa trabalhado:
for (int x=0; x
7/22/2019 I - Apresentao Prtica do Arduino
11/26
03. Leitura de um sin
Neste projeto, voc deve con(ligado ou desligado), enviando-o atr
A comunicao serial no coatalho Ctrl+Shift+M (Serial monitor).
O que voc vai precisar:
01 placa Arduino Mega03 cabos jumpers01 interruptor01 resistor 220
Montagem sugerida
Programao sugerida
void setup(){
Serial.begin (9600); // inicia a comupinMode (2, INPUT); // define o pin
}
void loop(){
int sensorValue = digitalRead(2); //Serial.println (sensorValue, DEC); /
delay (1000);}
al digital no computador
struir um circuito que possibilite a leitura dovs de uma comunicao serial ao comput
putador vista em uma tela parte, que
icao serial2 como entrada de dados
efine varivel e armazena a leitura do sens envia valor para o serial monitor
10
estado de um interruptordor.pode ser acessada pelo
or
7/22/2019 I - Apresentao Prtica do Arduino
12/26
11
Explorando a programaoA linha Serial.begin (9600);inicia a leitura serial, a 9600 bauds.A linha Serial.println (sensorValue, DEC);envia o valor da leitura do sensor para o monitor serial e
salta linha ao final. Para que as entradas fossem publicadas em uma mesma linha, deve-se utilizar ocomando Serial.printem vez de Serial.println.
Neste projeto, o monitor serial dever exibir 0 quando o sensor estiver solto e 1, quando estiver
pressionado.Baudderiva do sobrenome de J.M.E. Baudot, francs inventor do cdigo telegrfico Baudot. Um Bauduma medida de velocidade de sinalizaoe representa o nmero de mudanas na linha de transmisso(seja em frequncia, amplitude, fase etc...) ou eventos por segundo. Para se determinar a taxa detransmisso de um canal em bits por segundo - bps, deve ser levado em considerao o tipo decodificaoutilizada, alm da velocidade de sinalizao do canal de comunicao.
Fonte: http://pt.wikipedia.org/wiki/Baud
Alterando o cdigo
1 Adicione um LED porta 2 do Arduino Mega e altere o cdigo para que o LED acenda quando o
boto do interruptor for pressionado.
2 Observe o seguinte cdigo:
char nome[] = "ARDUINO";
void setup(){Serial.begin (9600);
}
void loop()
{ for (int x=0; x < 8; x++){Serial.print (nome[x]);delay (500);
}}
observe a diferena entre os comandos Serial.printe Serial.println
7/22/2019 I - Apresentao Prtica do Arduino
13/26
04. Leitura de um sin
Neste projeto, voc deve con1023) fornecido por um potencimetr
A comunicao serial no comatalho Ctrl+Shift+M (Serial monitor).
O que voc vai precisar:01 placa Arduino Mega03 cabos jumpers01 potencimetro
Montagem sugerida
Programao sugerida
void setup(){
Serial.begin (9600);}void loop(){
int sensorValue = analogRead (A0)
Serial.println (sensorValue, DEC);delay (1000);
}
al analgico no computa
truir um circuito que possibilite a leitura deo, enviando-o atravs de uma comunicaoputador vista em uma tela parte, que po
12
or
m valor analgico (0 aserial ao computador.e ser acessada pelo
7/22/2019 I - Apresentao Prtica do Arduino
14/26
Explorando a programaoA linha intsensorValue = anal
porta analgica 0 na varivel sensorAo girar o potencimetro, o n
Alterando o cdigoAltere o cdigo para que al
final, ajuste o potencimetro para quresistncia e uma unidade analgica
Alterando a montagemSubstitua o potencimetro po
luminosidade ambiente.
A montagem deve ficar com
Detalhando um pouco mais
LDR (Light Dependent Resistence Dispositivo eletrnico que aprincidente. necessrio conect-lo a
gRead(A0); define a varivel sensorValuealuevo valor do sinal analgico ser exibido em
do valor analgico, seja exibido o valor da
ele exera resistncia de 220
. (dica: det lembre-se de que o Arduino utiliza 1024 u
um LDR (Light Dependent Resistor) e efetu
seguinte aspecto:
esenta como uma resistncia varivel, cujoum resistor para que possa atuar como sen
13
armazena o valor da
tela.
esistncia, em ohms. No
rmine a relao entre anidades analgicas).
e medidas da
alor depende da luzor analgico.
7/22/2019 I - Apresentao Prtica do Arduino
15/26
14
05. Semforo
Agora ns iremos criar um circuito para simular um semforo de trnsito. O semforo serconstitudo por trs LEDs: um vermelho, um amarelo e um verde.
O que voc vai precisar:01 Placa Arduino Mega01 Protoboard
01 LED Vermelho01 LED Amarelo01 LED Verde03 Resistores 220
Montagem Sugerida
Programao Sugerida
int ledDelay = 10000; // espera entre as trocas de coresint vermelho = 10;int amarelo = 9;int verde = 8;void setup(){
pinMode (vermelho, OUTPUT);
pinMode (amarelo, OUTPUT);pinMode (verde, OUTPUT);}
7/22/2019 I - Apresentao Prtica do Arduino
16/26
15
void loop(){
digitalWrite (vermelho, HIGH); // liga o led vermelhodelay (ledDelay); // espera o tempo determinado na varivel ledDelaydigitalWrite (amarelo, HIGH); // liga o led amarelodelay (2000); // espera 2 segundosdigitalWrite (verde, HIGH); // liga o led verdedigitalWrite (vermelho, LOW); // desliga o led vermelho
digitalWrite (amarelo, LOW); // desliga o led amarelodelay (ledDelay); // espera o tempo determinado na varivel ledDelaydigitalWrite (amarelo, HIGH); // liga o led amarelodigitalWrite (verde, LOW); // desliga o led verdedelay (2000); // espera 2 segundosdigitalWrite (amarelo, LOW); // desliga o led amarelo
}
Alterando o cdigo
1 Voc deve ter percebido que o cdigo do semforo ligeiramente diferente do cdigo utilizado nos
semforos brasileiros. Adapte o cdigo para torn-lo semelhante programao de nossos semforos.
7/22/2019 I - Apresentao Prtica do Arduino
17/26
16
06. Semforo Interativo
Este projeto uma extenso do projeto anterior, onde iremos incluir um semforo para pedestrese um boto para solicitar a parada dos carros.
O que voc vai precisar:02 LEDs vermelhos01 LED amarelo
02 LEDs verdes06 Resistores de 220 01 Interruptor
Montagem sugerida
Programao sugerida
int carroVermelho = 12;int carroAmarelo = 11;int carroVerde = 10;
int pedVermelho = 8;int pedVerde = 9;int botao = 2; // pino do interruptorint tempoTravessia = 5000; // tempo para atravessar a rua
7/22/2019 I - Apresentao Prtica do Arduino
18/26
17
unsigned long changeTime;
void setup(){
pinMode (carroVermelho, OUTPUT);pinMode (carroAmarelo, OUTPUT);pinMode (carroVerde, OUTPUT);pinMode (pedVermelho, OUTPUT);pinMode (pedVerde, OUTPUT);
pinMode (botao, INPUT);// liga a luz verde dos carros e a vermelha para os pedestresdigitalWrite (carroVerde, HIGH);digitalWrite (pedVermelho, HIGH);
}
void loop(){
int state = digitalRead (botao);if (state == HIGH && (millis() - changeTime) > 5000){// Ativa a funo para mudar as luzeschangeLights(); // executa o bloco changeLights()
}}
void changeLights(){
digitalWrite (carroVerde, LOW); // desliga o verdedigitalWrite (carroAmarelo, HIGH); // liga o amarelodelay (2000); // espera 2 segundosdigitalWrite (carroAmarelo, LOW); // desliga o amarelodigitalWrite (carroVermelho, HIGH); // liga o vermelhodelay (1000); // espera 1 segundodigitalWrite (pedVermelho, LOW); // desliga o vermelho do pedestredigitalWrite (pedVerde, HIGH); // liga o verde do pedestre
delay (tempoTravessia);
for (int x=0; x
7/22/2019 I - Apresentao Prtica do Arduino
19/26
18
07. Efeito Perseguio
Neste projeto, ns vamos usar uma srie de LEDs (10, no total) para criar um efeito deperseguio introduzindo o conceito de matrizes.
O que voc vai precisar01 Arduino Mega01 placa protoboard
10 LEDs vermelhos10 Resistores 220 21 cabos jumpers
Montagem Sugerida
Programao Sugerida
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // define uma matrizint ledDelay(65); // intervalo entre as trocasint direction = 1;int currentLED = 0;unsigned long changeTime;
void setup(){
// define todas as portas como sadafor (int x=0; x
7/22/2019 I - Apresentao Prtica do Arduino
20/26
19
void loop(){
if ((millis() - changeTime) > ledDelay){
changeLED();changeTime = millis();
}}
void changeLED(){
// desliga todos os LEDsfor (int x=0; x
7/22/2019 I - Apresentao Prtica do Arduino
21/26
20
08. Usando um termistor para calcular a temperatura
Algumas aplicaes industriais necessitam da leitura da temperatura para manterem seusprocessos. O Arduino permite fazer a leitura da temperatura atravs de um termistor conectado a umaporta analgica.
O que voc vai precisar
01 Arduino Mega01 protoboard01 termistor NTC 10 K01 resistor 10 K03 cabos jumpers
Montagem sugerida:
Programao sugerida
#include
double Termistor (int RawADC){
double Temp;Temp = log(((10240000/RawADC) - 10000)); // Considerando resistncia de 10KTemp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );// Equao de Steinhart-Hart para o termistor - temperatura em Kelvin
7/22/2019 I - Apresentao Prtica do Arduino
22/26
21
Temp = Temp - 273.15; // Converte Kelvin para Celsiusreturn Temp;}
void setup(){Serial.begin (115200);}
void loop (){Serial.print(int (Termistor (analogRead (0)))); // Exibe temperatura em CelsiusSerial.println (" graus Celsius");delay (1000);}
Explorando o cdigo
BibliotecasBibliotecas so conjuntos de dados pr-formatados que possibilitam funcionalidade extra a um
programa (por exemplo, funes matemticas mais complexas). Para incluir uma biblioteca, deve-se
utilizar a palavra-chave #include.Exemplo:
#include
As bibliotecas para o Arduino podem ser encontradas em http://arduino.cc/en/Reference/Libraries
DoubleFuno que dobra a preciso do ponto decimal, quando se trabalha com outras plataformas. No
cdigo do Arduino, possui exatamente a mesma funo que float.
Return
Finaliza a funo, retornando o valor designado.
Detalhando um pouco mais
TermistorUm termistor um controlador trmico, que consiste numa resistncia sensvel cuja funo
principal exibir uma mudana grande, previsvel e precisa em resistncia eltrica quando umequipamento ou produto sofrer uma mudana na temperatura de corpo. Um termistor de Coeficiente deTemperatura Negativo (NTC) (Negative Temperature Coefficient) exibe uma diminuio em resistnciaeltrica quando submetido a um aumento de temperatura do equipamento e um termistor de Coeficientede Temperatura Positivo(PTC) (Positive Temperature Coefficient) exibe um aumento em resistnciaeltrica existe um aumento da temperatura do equipamento.
Alterando o cdigo
1 Adicione um LED ao circuito e altere a programao para que o LED acenda quando a leitura datemperatura indicar 30 C.
7/22/2019 I - Apresentao Prtica do Arduino
23/26
22
09. Um LED pulsante
Neste projeto, o brilho de um LED ir variar de acordo com uma onda senoidal, a partir do controlede uma porta de sada de pulso modulado (PWM).
O que voc vai precisar01 Arduino Mega01 placa protoboard
01 LED01 resistor de 220 02 cabos jumpers
Montagem sugerida
Programaosugeridaint ledPin = 11;float sinVal;int ledVal;
void setup(){
pinMode (ledPin, OUTPUT);
7/22/2019 I - Apresentao Prtica do Arduino
24/26
23
}
void loop(){
for (int x=0; x
7/22/2019 I - Apresentao Prtica do Arduino
25/26
24
10. Tocando uma melodia
Brilha, brilha, estrelinha...
O que voc vai precisar01 Arduino Mega01 placa protoboard01 piezo elemento
Montagem sugerida
Programao sugeridaint speakerPin = 9;int length = 15; // define o nmero de notaschar notes[] = "ccggaagffeeddc "; // o espao representa uma pausaint beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 }; // define o tempo das notasint tempo = 300;
void playTone (int tone, int duration){
for (long i = 0; i < duration * 1000; i += tone * 2){
digitalWrite (speakerPin, HIGH);delayMicroseconds (tone);digitalWrite (speakerPin, LOW);delayMicroseconds (tone);
}}
void playNote (char note, int duration){
7/22/2019 I - Apresentao Prtica do Arduino
26/26
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };// toca o som correspondente notafor (int i = 0; i < 8; i++){
if (names[i] == note){
playTone (tones[i], duration);}
}
}
void setup(){
pinMode (speakerPin, OUTPUT);}
void loop(){
for (int i = 0; i < length; i++){
if (notes[i] == ' '){
delay(beats[i] * tempo); // pausa}else{
playNote (notes[i], beats[i] * tempo);}delay (tempo / 2); // pausa entre as notas
}}
Recommended