Upload
marcus-costa
View
5.678
Download
3
Embed Size (px)
Citation preview
Marcus Vinicius Brum da Costa
ArduinoPrimeiros passos com
Arduino???
Plataforma de hardware livre
Microcontrolador Atmel
I/O Digital e Analógica
Multiplataforma (Linux, Windows e Mac OS)
Arduino o que consigo fazer?
Ler valores provenientes de sensores. Ex: Acelerômetros, LDR, ultra-sons, entre muitos outros
Atuar no mundo exterior. Ex: LEDs, motores, displays(LCD), entre muitos outros.
Hardware ATmega328
Microcontrolador RISC
Memória flash de 32 KB (2KB usados para o bootloader)
SRAM interna de 2KB
I/0 digitais 14 pinos (6 PWM)
16MHz
Entrada analógica 6 pinos
1kB memória EEPROM
32 registradores (8 bits)
Layout Arduino Duemilanove
Diagrama de BlocoUtiliza arquitetura Harvard
Memória e bus separada para programa e dados.
Todos os 32 registradores estão diretamente ligados a ULA.
A arquitetura resultante é um código mais eficiente que alcança produções até 10 vezes mais rápido que os microcontroladores convencionais CISC.
Pipeline
Instruções na memória de programa são executadas com um pipeline de nível único.
Enquanto uma instrução está sendo executada, a próxima instrução é pré-buscada na memória de programa.
Hardware
Duemilanove
LilypadMiniMega
Nano RoboDuino
Arduino Duemilanove vs Mega
Shields
Ethernet Shield Tri Motor Shield LCD Shield
E muitos outros ....
Arduino - IDE
Área de código
Área de status e saída serial
Compilar
Parar execução
Novo
Abrir
Salvar
Enviar programa para placa
Exibir serial
"Talk is cheap. Show me the code."
Torvalds, Linus
Estrutura de programa
Funções Analógicas e Digitais
Exemplo de código
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); // Liga o LEDdelay(1000); // Espera 1 segundodigitalWrite(ledPin, LOW); // Desliga o LEDdelay(1000); // Espera 1 segundo}
Exemplo de código
Botão: int ledPin = 13; // LED no pino 13int inPin = 2; // botão no pino 2int val = 0; // variável que lê o status do pinovoid setup() {pinMode(ledPin, OUTPUT); // declarando LED
//como outputpinMode(inPin, INPUT); // declarando botão
//como input}
void loop(){val = digitalRead(inPin); // lendo o valor do inputif (val == HIGH) { // Verificando se o botão está
//como HIGHdigitalWrite(ledPin, LOW); // Desliga o LED} else {digitalWrite(ledPin, HIGH); // Liga o LED}}
Exemplo de código
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
Informações
Lista de discução :
Comprar :
Site Oficial : www.arduino.cc
www.webtronico.com
Blog :
groups.google.com/group/tcheduino
http://www.tcheduino.blogspot.com/
Referências
http://fritzing.org
www.arduino.cc
http://www.webtronico.com/documentos/atmega328.pdf
http://tcheduino.blogspot.com