#include <LiquidCrystal.h>
const byte PIN_BUTTON_RIGHT = 8;
const byte PIN_BUTTON_UP = 9;
const byte PIN_BUTTON_DOWN = 10;
const byte PIN_BUTTON_LEFT = 11;
const byte PIN_BUTTON_TEMP = 12;
float tempc;
int temppin=0;
LiquidCrystal lcd(A4,A5,12,11,10,9);
int sirene,Buzzer=6,LED=7;
int RECV_PIN=2, motor1_1=3, motor1_2=4, motor2_1=5, motor2_2=6,ledfarol=7;
void setup() {
Serial.begin(9600);
Serial.println("Simple Adafruit Motor Shield sketch");
pinMode(PIN_BUTTON_RIGHT, INPUT);
digitalWrite(PIN_BUTTON_RIGHT, HIGH);
pinMode(PIN_BUTTON_LEFT, INPUT);
digitalWrite(PIN_BUTTON_LEFT, HIGH);
pinMode(PIN_BUTTON_UP, INPUT);
digitalWrite(PIN_BUTTON_UP, HIGH);
pinMode(PIN_BUTTON_DOWN, INPUT);
digitalWrite(PIN_BUTTON_DOWN, HIGH);
pinMode(PIN_BUTTON_TEMP, INPUT);
digitalWrite(PIN_BUTTON_TEMP, HIGH);
lcd.begin(16, 2);
pinMode(motor1_1,OUTPUT);
pinMode(motor1_2,OUTPUT);
pinMode(motor2_1,OUTPUT);
pinMode(motor2_2,OUTPUT);
pinMode(LED,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(A4,OUTPUT);
pinMode(A5,OUTPUT);
pinMode(ledfarol,OUTPUT);
pinMode(Buzzer,OUTPUT);
}
void loop() {
if (digitalRead(PIN_BUTTON_UP) == LOW) { //frente
lcd.setCursor(0,0);
lcd.print("Botao 1");
lcd.setCursor(0,1);
lcd.print("Frente");
digitalWrite(motor2_2,LOW);
digitalWrite(motor1_2,LOW);
digitalWrite(motor1_1,HIGH);
digitalWrite(motor2_1,HIGH);
}
else
{
//button is not pressed
}
if (digitalRead(PIN_BUTTON_DOWN) == LOW) { //tras
lcd.setCursor(0,0);
lcd.print("Botao 2");
lcd.setCursor(0,1);
lcd.print("Ré");
digitalWrite(motor2_1,LOW);
digitalWrite(motor1_1,LOW);
digitalWrite(motor1_2,HIGH);
digitalWrite(motor2_2,HIGH);
}
else
{
//button is not pressed
}
/*if (digitalRead(PIN_BUTTON_UP) == LOW) { //parar
lcd.setCursor(0,0);
lcd.print("Botao 3");
lcd.setCursor(0,1);
lcd.print("Parar");
digitalWrite(motor2_2,LOW);
digitalWrite(motor1_2,LOW);
digitalWrite(motor2_1,LOW);
digitalWrite(motor1_1,LOW);
else
//button is not pressed
}*/
if (digitalRead(PIN_BUTTON_LEFT) == LOW) { //ESQUERDA
lcd.setCursor(0,0);
lcd.print("Botao 4");
lcd.setCursor(0,1);
lcd.print("Esquerda");
digitalWrite(motor2_1,LOW);
digitalWrite(motor1_2,LOW);
digitalWrite(motor1_1,HIGH);
digitalWrite(motor2_2,HIGH);
}
else
{
//button is not pressed
}
if (digitalRead(PIN_BUTTON_RIGHT) == LOW) { //DIREITA
lcd.setCursor(0,0);
lcd.print("Botao 5");
lcd.setCursor(0,1);
lcd.print("Direita");
digitalWrite(motor2_2,LOW);
digitalWrite(motor1_1,LOW);
digitalWrite(motor1_2,HIGH);
digitalWrite(motor2_1,HIGH);
}
else
{
//button is not pressed
}
if (digitalRead(PIN_BUTTON_TEMP) == LOW) { //temp
tempc=analogRead(temppin);
tempc=((5.0*tempc*100)/1024);
Serial.println(tempc);
lcd.setCursor(0,0);
lcd.print("Temperatura");
lcd.setCursor(0,1);
lcd.print(tempc);
}
else
{
//button is not pressed
}
}
sábado, 14 de dezembro de 2013
CODIGO ARDUINO 4WD
#include <Servo.h>
// pinos do Arduino para o registrador de deslocamento
#define MOTORLATCH 12
#define MOTORCLK 4
#define MOTORENABLE 7
#define MOTORDATA 8
// Estes são usados para definir a direção do motorista ponte.
#define MOTOR1_A 2
#define MOTOR1_B 3
#define MOTOR2_A 1
#define MOTOR2_B 4
#define MOTOR3_A 5
#define MOTOR3_B 7
#define MOTOR4_A 0
#define MOTOR4_B 6
// pinos do Arduino para os sinais PWM.
#define MOTOR1_PWM 11
#define MOTOR2_PWM 3
#define MOTOR3_PWM 6
#define MOTOR4_PWM 5
// Códigos para a função de motor.
#define FORWARD 1
#define BACKWARD 2
#define BRAKE 3
#define RELEASE 4
const byte PIN_BUTTON_RIGHT = 10;
const byte PIN_BUTTON_UP = 9;
const byte PIN_BUTTON_DOWN = 2;
const byte PIN_BUTTON_LEFT = 13;
void setup()
{
Serial.begin(9600);
Serial.println("Simple Adafruit Motor Shield sketch");
pinMode(PIN_BUTTON_RIGHT, INPUT);
digitalWrite(PIN_BUTTON_RIGHT, HIGH);
pinMode(PIN_BUTTON_LEFT, INPUT);
digitalWrite(PIN_BUTTON_LEFT, HIGH);
pinMode(PIN_BUTTON_UP, INPUT);
digitalWrite(PIN_BUTTON_UP, HIGH);
pinMode(PIN_BUTTON_DOWN, INPUT);
digitalWrite(PIN_BUTTON_DOWN, HIGH);
}
void loop()
{
if (digitalRead(PIN_BUTTON_LEFT) == LOW) { //ESQUERDA
// Button is pressed
motor(1, BACKWARD, 250);
delay(1);
motor(2, FORWARD, 250);
delay(1);
motor(3, BACKWARD, 250);
delay(1);
motor(4, FORWARD, 250);
delay(1);
//else
// Button is not pressed
}
if (digitalRead(PIN_BUTTON_RIGHT) == LOW) { //DIREITA
// Button is pressed
motor(1, FORWARD, 250);
delay(1);
motor(2, BACKWARD, 250);
delay(1);
motor(3, FORWARD, 250);
delay(1);
motor(4, BACKWARD, 250);
delay(1);
} else {
// Button is not pressed
}
if (digitalRead(PIN_BUTTON_UP) == LOW) {
// Button is pressed
motor(1, FORWARD, 250);
delay(1);
motor(2, FORWARD, 250);
delay(1);
motor(3, FORWARD, 250);
delay(1);
motor(4, FORWARD, 250);
delay(1);
} else {
// Button is not pressed
}
if (digitalRead(PIN_BUTTON_DOWN) == LOW) {
// Button is pressed
motor(1, BACKWARD, 250);
delay(1);
motor(2, BACKWARD, 250);
delay(1);
motor(3, BACKWARD, 250);
delay(1);
motor(4, BACKWARD, 250);
delay(1);
//else {
// Button is not pressed
//}
}
Serial.println();
/*
motor(1, BACKWARD, 250);
delay(1);
motor(2, BACKWARD, 250);
delay(1);
motor(3, BACKWARD, 250);
delay(1);
motor(4, BACKWARD, 250);
delay(1); */
}
void motor(int nMotor, int command, int speed)
{
int motorA, motorB;
if (nMotor >= 1 && nMotor <= 4)
{
switch (nMotor)
{
case 1:
motorA = MOTOR1_A;
motorB = MOTOR1_B;
break;
case 2:
motorA = MOTOR2_A;
motorB = MOTOR2_B;
break;
case 3:
motorA = MOTOR3_A;
motorB = MOTOR3_B;
break;
case 4:
motorA = MOTOR4_A;
motorB = MOTOR4_B;
break;
default:
break;
}
switch (command)
{
case FORWARD://(frente)
motor_output (motorA, HIGH, speed);
motor_output (motorB, LOW, -1); // -1: no PWM set
break;
case BACKWARD:
motor_output (motorA, LOW, speed);
motor_output (motorB, HIGH, -1); // -1: no PWM set
break;
case BRAKE:
motor_output (motorA, LOW, 255); //255: totalmente em
motor_output (motorB, LOW, -1); // -1: no PWM set
break;
case RELEASE:
motor_output (motorA, LOW, 0); // 0: output floating(flutuante saida).
motor_output (motorB, LOW, -1); // -1: no PWM set
break;
default:
break;
}
}
}
void motor_output (int output, int high_low, int speed)
{
int motorPWM;
switch (output)
{
case MOTOR1_A:
case MOTOR1_B:
motorPWM = MOTOR1_PWM;
break;
case MOTOR2_A:
case MOTOR2_B:
motorPWM = MOTOR2_PWM;
break;
case MOTOR3_A:
case MOTOR3_B:
motorPWM = MOTOR3_PWM;
break;
case MOTOR4_A:
case MOTOR4_B:
motorPWM = MOTOR4_PWM;
break;
default:
//Usar a velocidade como sinalizador de erro, -3333 = saída inválido.
speed = -3333;
break;
}
if (speed != -3333)
{
shiftWrite(output, high_low);
// definir PWM somente se ela é válida se
if (speed >= 0 && speed <= 255)
{
analogWrite(motorPWM, speed);
}
}
}
void shiftWrite(int output, int high_low)
{
static int latch_copy;
static int shift_register_initialized = false;
// Faz a inicialização em tempo real,
// Na primeira vez que é utilizado.
if (!shift_register_initialized)
{
// Definir pinos para registro de deslocamento para a saída
pinMode(MOTORLATCH, OUTPUT);
pinMode(MOTORENABLE, OUTPUT);
pinMode(MOTORDATA, OUTPUT);
pinMode(MOTORCLK, OUTPUT);
// Definir pinos para registro de deslocamento para o valor padrão (baixo);
digitalWrite(MOTORDATA, LOW);
digitalWrite(MOTORLATCH, LOW);
digitalWrite(MOTORCLK, LOW);
// Ativar o registo de deslocamento, defina Ativar pin Baixo
digitalWrite(MOTORENABLE, LOW);
// Inicia com todas as saídas (da mudança de registo) baixa
latch_copy = 0;
shift_register_initialized = true;
}
// A define alta e baixa são 1 e 0.
// Então, isso é válido.
bitWrite(latch_copy, output, high_low);
// Use o default 'shiftOut ()' Arduino função
// Mudar os bits com o MOTORCLK como relógio de pulso.
// O 74HC595 shiftregister quer o MSB primeiro.
// Depois disso, gerar um pulso trava com MOTORLATCH.
shiftOut(MOTORDATA, MOTORCLK, MSBFIRST, latch_copy);
delayMicroseconds(5); // Para sua segurança, não é realmente necessário.
digitalWrite(MOTORLATCH, HIGH);
delayMicroseconds(5); // Para sua segurança, não é realmente necessário.
digitalWrite(MOTORLATCH, LOW);
}
// pinos do Arduino para o registrador de deslocamento
#define MOTORLATCH 12
#define MOTORCLK 4
#define MOTORENABLE 7
#define MOTORDATA 8
// Estes são usados para definir a direção do motorista ponte.
#define MOTOR1_A 2
#define MOTOR1_B 3
#define MOTOR2_A 1
#define MOTOR2_B 4
#define MOTOR3_A 5
#define MOTOR3_B 7
#define MOTOR4_A 0
#define MOTOR4_B 6
// pinos do Arduino para os sinais PWM.
#define MOTOR1_PWM 11
#define MOTOR2_PWM 3
#define MOTOR3_PWM 6
#define MOTOR4_PWM 5
// Códigos para a função de motor.
#define FORWARD 1
#define BACKWARD 2
#define BRAKE 3
#define RELEASE 4
const byte PIN_BUTTON_RIGHT = 10;
const byte PIN_BUTTON_UP = 9;
const byte PIN_BUTTON_DOWN = 2;
const byte PIN_BUTTON_LEFT = 13;
void setup()
{
Serial.begin(9600);
Serial.println("Simple Adafruit Motor Shield sketch");
pinMode(PIN_BUTTON_RIGHT, INPUT);
digitalWrite(PIN_BUTTON_RIGHT, HIGH);
pinMode(PIN_BUTTON_LEFT, INPUT);
digitalWrite(PIN_BUTTON_LEFT, HIGH);
pinMode(PIN_BUTTON_UP, INPUT);
digitalWrite(PIN_BUTTON_UP, HIGH);
pinMode(PIN_BUTTON_DOWN, INPUT);
digitalWrite(PIN_BUTTON_DOWN, HIGH);
}
void loop()
{
if (digitalRead(PIN_BUTTON_LEFT) == LOW) { //ESQUERDA
// Button is pressed
motor(1, BACKWARD, 250);
delay(1);
motor(2, FORWARD, 250);
delay(1);
motor(3, BACKWARD, 250);
delay(1);
motor(4, FORWARD, 250);
delay(1);
//else
// Button is not pressed
}
if (digitalRead(PIN_BUTTON_RIGHT) == LOW) { //DIREITA
// Button is pressed
motor(1, FORWARD, 250);
delay(1);
motor(2, BACKWARD, 250);
delay(1);
motor(3, FORWARD, 250);
delay(1);
motor(4, BACKWARD, 250);
delay(1);
} else {
// Button is not pressed
}
if (digitalRead(PIN_BUTTON_UP) == LOW) {
// Button is pressed
motor(1, FORWARD, 250);
delay(1);
motor(2, FORWARD, 250);
delay(1);
motor(3, FORWARD, 250);
delay(1);
motor(4, FORWARD, 250);
delay(1);
} else {
// Button is not pressed
}
if (digitalRead(PIN_BUTTON_DOWN) == LOW) {
// Button is pressed
motor(1, BACKWARD, 250);
delay(1);
motor(2, BACKWARD, 250);
delay(1);
motor(3, BACKWARD, 250);
delay(1);
motor(4, BACKWARD, 250);
delay(1);
//else {
// Button is not pressed
//}
}
Serial.println();
/*
motor(1, BACKWARD, 250);
delay(1);
motor(2, BACKWARD, 250);
delay(1);
motor(3, BACKWARD, 250);
delay(1);
motor(4, BACKWARD, 250);
delay(1); */
}
void motor(int nMotor, int command, int speed)
{
int motorA, motorB;
if (nMotor >= 1 && nMotor <= 4)
{
switch (nMotor)
{
case 1:
motorA = MOTOR1_A;
motorB = MOTOR1_B;
break;
case 2:
motorA = MOTOR2_A;
motorB = MOTOR2_B;
break;
case 3:
motorA = MOTOR3_A;
motorB = MOTOR3_B;
break;
case 4:
motorA = MOTOR4_A;
motorB = MOTOR4_B;
break;
default:
break;
}
switch (command)
{
case FORWARD://(frente)
motor_output (motorA, HIGH, speed);
motor_output (motorB, LOW, -1); // -1: no PWM set
break;
case BACKWARD:
motor_output (motorA, LOW, speed);
motor_output (motorB, HIGH, -1); // -1: no PWM set
break;
case BRAKE:
motor_output (motorA, LOW, 255); //255: totalmente em
motor_output (motorB, LOW, -1); // -1: no PWM set
break;
case RELEASE:
motor_output (motorA, LOW, 0); // 0: output floating(flutuante saida).
motor_output (motorB, LOW, -1); // -1: no PWM set
break;
default:
break;
}
}
}
void motor_output (int output, int high_low, int speed)
{
int motorPWM;
switch (output)
{
case MOTOR1_A:
case MOTOR1_B:
motorPWM = MOTOR1_PWM;
break;
case MOTOR2_A:
case MOTOR2_B:
motorPWM = MOTOR2_PWM;
break;
case MOTOR3_A:
case MOTOR3_B:
motorPWM = MOTOR3_PWM;
break;
case MOTOR4_A:
case MOTOR4_B:
motorPWM = MOTOR4_PWM;
break;
default:
//Usar a velocidade como sinalizador de erro, -3333 = saída inválido.
speed = -3333;
break;
}
if (speed != -3333)
{
shiftWrite(output, high_low);
// definir PWM somente se ela é válida se
if (speed >= 0 && speed <= 255)
{
analogWrite(motorPWM, speed);
}
}
}
void shiftWrite(int output, int high_low)
{
static int latch_copy;
static int shift_register_initialized = false;
// Faz a inicialização em tempo real,
// Na primeira vez que é utilizado.
if (!shift_register_initialized)
{
// Definir pinos para registro de deslocamento para a saída
pinMode(MOTORLATCH, OUTPUT);
pinMode(MOTORENABLE, OUTPUT);
pinMode(MOTORDATA, OUTPUT);
pinMode(MOTORCLK, OUTPUT);
// Definir pinos para registro de deslocamento para o valor padrão (baixo);
digitalWrite(MOTORDATA, LOW);
digitalWrite(MOTORLATCH, LOW);
digitalWrite(MOTORCLK, LOW);
// Ativar o registo de deslocamento, defina Ativar pin Baixo
digitalWrite(MOTORENABLE, LOW);
// Inicia com todas as saídas (da mudança de registo) baixa
latch_copy = 0;
shift_register_initialized = true;
}
// A define alta e baixa são 1 e 0.
// Então, isso é válido.
bitWrite(latch_copy, output, high_low);
// Use o default 'shiftOut ()' Arduino função
// Mudar os bits com o MOTORCLK como relógio de pulso.
// O 74HC595 shiftregister quer o MSB primeiro.
// Depois disso, gerar um pulso trava com MOTORLATCH.
shiftOut(MOTORDATA, MOTORCLK, MSBFIRST, latch_copy);
delayMicroseconds(5); // Para sua segurança, não é realmente necessário.
digitalWrite(MOTORLATCH, HIGH);
delayMicroseconds(5); // Para sua segurança, não é realmente necessário.
digitalWrite(MOTORLATCH, LOW);
}
PÓS E CONTRAS
PÓS
CONTRA
- Nós aprofundamos no universo da eletrônica digital e dos microcontroladores(Arduino)
- Podemos ver na prática a junção da programação com a eletrônica digital
- A importância da atenção quanto a interligação de componentes eletrônicos
- A gama de conhecimento eletrônico que conseguimos absorver
- Enxergar que a plataforma Arduíno é vasta podendo ser realizado diversos projetos;
CONTRA
- Dificuldade quanto a compra de componentes eletrônicos na região
- Ter que refazer o código do Arduino por conta da queima da ponte h
- Ter que dormir de madrugada para sanar os problemas acima;
- Ter comprado pouco Jumper
COMPONENTES ELETRONICOS UTILIZADOS NO ROBO4WD
COMPONENTES ELETRONICOS UTILIZADOS NO ROBO4WD
Segue sugestões para montagem com links dos modelos apresentados
Sensor De Umidade E Temperatura Dht11
http://produto.mercadolivre.com.br/MLB-528288318-sensor-de-umidade-e-temperatura-dht11-pic-arduino-id871-_JM?redirectedFromParent=MLB516225032
Guia de estudo
Guia de Estudo
Data sheet
Documentos:
Modulo Rf 433mhz + Ht12d + Ht12e + Diagrama Ligação Id925
Módulo Joystick Shield V2.4, Crie Seu Video-game No Arduino
Módulo Motor De Passo Shield Para Arduino, Ponte H, H-bridge
Kit Chassis De Carro Robô Vermelho C/ 4 Motores - Arduino
Starter Kit Avançado (com Arduino Uno REV3 Original)
PRINCIPAIS TIPOS DE ARDUINOS
Arduino UNO
(Existem várias versões de Arduino UNO como UNO SMD, UNO R2 e o último UNO R3)
(Existem várias versões de Arduino UNO como UNO SMD, UNO R2 e o último UNO R3)
Microcontrolador
|
ATmega328
|
Tensão de operação
|
5V
|
Tensão de entrada (recomendada)
|
7-12V
|
Tensão de entrada (limites)
|
6-20V
|
Pinos de I/O Digitais
|
14 (6 deles com saída PWM)
|
Pinos Analógicos
|
6
|
Corrente CC por I/O Pino
|
40 mA
|
Corrente do Pino 3.3V
|
50 mA
|
Memória Flash
|
32 KB (ATmega328) 0.5 KB usado pelobootloader
|
SRAM
|
2 KB (ATmega328)
|
EEPROM
|
1 KB (ATmega328)
|
Velocidade do Clock
|
16 MHz
|
Ele é ideal para quem está começando com essa placa, muita gente que começa as vezes querem já fazendo projetos grandes ou pequenos para ver sua capacidade. Com certeza, caso o projeto não for muito elaborado e que precise usar todas as portas, acho um pouco difícil, esse é ótimos para os iniciantes e para quem já usa normalmente.
"Uno" significa um em italiano e é nomeado para marcar o lançamento do Arduino1.0
Arduino MEGA
(Existem outras versões também como MEGA UNO, MEGA R3)
(Existem outras versões também como MEGA UNO, MEGA R3)
Microcontrolador
|
ATmega2560
|
Tensão de operação
|
5V
|
Tensão de entrada (recomendada)
|
7-12V
|
Tensão de entrada (limites)
|
6-20V
|
Pinos de I/O Digitais
|
54 (14 deles com saída PWM)
|
Pinos Analógicos
|
16
|
Corrente CC por I/O Pino
|
40 mA
|
Corrente do Pino 3.3V
|
50 mA
|
Memória Flash
|
256 KB (ATmega2560) 8 KB usado pelobootloader
|
SRAM
|
8 KB (ATmega2560)
|
EEPROM
|
4 KB (ATmega2560)
|
Velocidade do Clock
|
16 MHz
|
O arduino mega possui bem mais portas, ótimo para projetos grandes que utilizariam muitas portas e também usar até os shields sem que atrapalhe no mesmo. Exemplo de projeto com isso é automatizar uma casa com ele, casa porta controlar um Relé para acionar as tomas, lâmpadas, etc.
Arduino ADK
Microcontrolador
|
ATmega2560
|
Tensão de operação
|
5V
|
Tensão de entrada (recomendada)
|
7-12V
|
Tensão de entrada (limites)
|
6-20V
|
Pinos de I/O Digitais
|
54 (14 deles com saída PWM)
|
Pinos Analógicos
|
16
|
Corrente CC por I/O Pino
|
40 mA
|
Corrente do Pino 3.3V
|
50 mA
|
Memória Flash
|
256 KB (ATmega2560) 8 KB usado pelobootloader
|
SRAM
|
8 KB (ATmega2560)
|
EEPROM
|
4 KB (ATmega2560)
|
Velocidade do Clock
|
16 MHz
|
A diferença do ADK para o Arduino MEGA em si é que o ADK possui uma porta USB que serve para ligar em aparelhos que possua Android. Essa placa serve para projeto que tenha interação com o Android.
Arduino Leonardo
(Essa placa é a mais recente, foi criada a pouco tempo)
Microcontrolador
|
ATmega32U4
|
Tensão de operação
|
5V
|
Tensão de entrada (recomendada)
|
7-12V
|
Tensão de entrada (limites)
|
6-20V
|
Pinos de I/O Digitais
|
20 (7 deles com saída PWM)
|
Pinos Analógicos
|
12
|
Corrente CC por I/O Pino
|
40 mA
|
Corrente do Pino 3.3V
|
50 mA
|
Memória Flash
|
32 KB (ATmega32U4) 4 KB usado pelobootloader
|
SRAM
|
2,5 KB (ATmega32U4)
|
EEPROM
|
1 KB (ATmega2560)
|
Velocidade do Clock
|
16 MHz
|
Essa placa é recente, serve para quem já está acostumado com o Arduino pois na programação criaram mais funções com ele, como usar a placa como teclado ou mouse. Outra coisa que difere das outras placas é que o processamento dele é mais rápido 32U4 sendo que os outros são 8U2.
O QUE O ARDUINO PODE FAZER?
Arduino pode perceber o ambiente ao receber a entrada de uma variedade de sensores, módulos ou Shields e pode afetar seus arredores por luzes de controle, motores e outros atuadores. O microcontrolador na placa é programado usando a linguagem de programação Arduino em Wiring e o ambiente de desenvolvimentoArduino. Projetos Arduino podem ser stand-alone ou podem comunicar com software rodando em um computador como: Flash, Processing, MaxMSP.
As placas podem ser construídas à mão ou comprados pré-montado, o software pode ser baixado gratuitamente no site oficial (www.arduino.cc). Os designs de referência do hardware são disponíveis sob uma licença de código aberto, sendo livre para adequá-los aos usuários.
O arduino de forma tão rápida conquistou mercado seleto que mais de 50 mil placas open source foram vendidas e rendeu um documentário de 2010 sobre a trajetória de desenvolvimento da plaquinha. As unidades são constituídas por controladora AtmelAVR de 8 bits, pinos digitais e analógicos de entrada e saída, entrada USB – o que permite conexão com computadores – ou serial e possui código aberto, que quando modificado, dá origem a outros derivados “ino” – que por questões comerciais – levam nomes como Netduino, Produino e Garagino. A placa Arduino não possui recursos de rede, mas pode ser combinada com outros Arduinos criando extensões chamadas deshields.
A tensão de entrada usada é entre 7 volts e máximo de 35 volts com corrente mínima de 300mA. A placa e demais circuitos funcionam com tensões entre 5 e 3,3 volts. Embutido no Arduino há ainda um firmware – que combina memória ROM para leitura e um programa gravado neste tipo de memória – carregado na memória da placa controladora, que aceita Windows, Linux e Mac OS X.
Em termos de software, o Arduino pode ter funcionalidades desenvolvidas por meio da linguagem C/C++, que utiliza uma interface gráfica escrita em Java. As funções IDE doArduino permitem o desenvolvimento de software que possa ser executado pelo dispositivo. A versão mais atualizada até o momento é a 1.0.5.
Com ele pode-se produzir automação de casas, acender luzes por meio da controladora ou projetos mais ousados como robo4wd (projeto universitário), BiometricSecurity Toy Box, que une a biometria, mais especificamente a ideia do novo sensor de identidade digital da Apple, o Touch ID do iPhone 5S, ao Arduino.
O QUE É ARDUINO?
Arduino é uma plataforma open-source de prototipagem eletrônica, uma placa fabricada na Itália, baseada em flexível, fácil de usar hardware e software. É destinado a artistas, designers, entusiastas e qualquer pessoa interessada em criar objetos ou ambientes interativos..
ROBO4WD
"Tudo parece impossível até que seja feito"
Nelson Mandela
Nelson Mandela
CONCLUSÃO
Com esse projeto podemos nos aprofundar um pouco mais no universo da eletrônica digital e dos microcontroladores em que neste projeto usamos o Arduino UNO, aprendemos também como é importante ter cuidado e atenção nas ligações dos componentes eletrônicos, pois enfrentamos muitos problemas como: a queima do Arduino UNO e da ponte H e devido este problema acarretou uma serie de retrabalhos pois tivemos que adaptar nosso robo de 4x4 em 2x2 e comfecionar uma ponte h com tipe127 mudando todo o codigo que fizemos inicialmente, por isso aconselho ter bastante atenção na execução do mesmo.
Composição da equipe
Álvaro Freitas
Aírton Mascarenhas
Ronildo Tapioam
Sérgio Zonta
Waldemir do Valle
Com esse projeto podemos nos aprofundar um pouco mais no universo da eletrônica digital e dos microcontroladores em que neste projeto usamos o Arduino UNO, aprendemos também como é importante ter cuidado e atenção nas ligações dos componentes eletrônicos, pois enfrentamos muitos problemas como: a queima do Arduino UNO e da ponte H e devido este problema acarretou uma serie de retrabalhos pois tivemos que adaptar nosso robo de 4x4 em 2x2 e comfecionar uma ponte h com tipe127 mudando todo o codigo que fizemos inicialmente, por isso aconselho ter bastante atenção na execução do mesmo.
Composição da equipe
Álvaro Freitas
Aírton Mascarenhas
Ronildo Tapioam
Sérgio Zonta
Waldemir do Valle
Assinar:
Postagens (Atom)