You are on page 1of 20

Primeiros passos com

Arduino
Marcus Vinicius Brum da Costa

Arduino???
Plataforma de hardware livre Microcontrolador Atmel I/O Digital e Analgica Multiplataforma (Linux, Windows e Mac OS)

Arduino o que consigo fazer?


Ler valores provenientes de sensores. Ex: Acelermetros, LDR, ultra-sons, entre muitos outros
Atuar no mundo exterior. Ex: LEDs, motores, displays(LCD), entre muitos outros.

Hardware ATmega328
Microcontrolador RISC
Memria flash de 32 KB (2KB usados para o bootloader) SRAM interna de 2KB 1kB memria EEPROM I/0 digitais 14 pinos (6 PWM) Entrada analgica 6 pinos 16MHz 32 registradores (8 bits)

Layout Arduino Duemilanove

Diagrama de Bloco
Utiliza arquitetura Harvard Memria e bus separada para programa e dados. Todos os 32 registradores esto diretamente ligados a ULA. A arquitetura resultante um cdigo mais eficiente que alcana produes at 10 vezes mais rpido que os microcontroladores convencionais CISC.

Pipeline
Instrues na memria de programa so executadas com um pipeline de nvel nico.

Enquanto uma instruo est sendo executada, a prxima instruo prbuscada na memria de programa.

Hardware

Duemilanove

RoboDuino

Nano

Mini

Lilypad

Mega

Arduino Duemilanove vs Mega

Shields

Ethernet Shield

Tri Motor Shield

LCD Shield

E muitos outros ....

Arduino - IDE
Compilar Exibir serial rea de cdigo Parar execuo Novo Abrir

Salvar
Enviar programa para placa rea de status e sada serial

"Talk is cheap. Show me the code." Torvalds, Linus

Estrutura de programa

Funes Analgicas e Digitais

Exemplo de cdigo
Piscar:
int ledPin = 13; // LED conectado no pino digital 13

void setup() { pinMode(ledPin, OUTPUT); //Define o pino digital //como Output } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); }

// Liga o LED // Espera 1 segundo // Desliga o LED // Espera 1 segundo

Exemplo de cdigo
Boto:
int ledPin = 13; // LED no pino 13 int inPin = 2; // boto no pino 2 int val = 0; // varivel que l o status do pino void setup() { pinMode(ledPin, OUTPUT); // declarando LED //como output pinMode(inPin, INPUT); // declarando boto //como input } void loop(){ val = digitalRead(inPin); // lendo o valor do input if (val == HIGH) { // Verificando se o boto est //como HIGH digitalWrite(ledPin, LOW); // Desliga o LED } else { digitalWrite(ledPin, HIGH); // Liga o LED } }

Exemplo de cdigo
Servo-motor:
#include <Servo.h>
Servo myservo; int pos = 0; void setup() { myservo.attach(9); } void loop() { for(pos = 0; pos < 180; pos += 1) { myservo.write(pos); delay(15); } }

Projetos com Arduino

Informaes

Site Oficial : Comprar :

www.arduino.cc

www.webtronico.com groups.google.com/group/tcheduino

Lista de discuo :

Blog : http://www.tcheduino.blogspot.com/

Referncias

http://www.webtronico.com/documentos/atme ga328.pdf www.arduino.cc http://fritzing.org http://tcheduino.blogspot.com