Tecnologia do Blogger.

Arduino + Bargraph

Boas!
Hoje trago aqui mais um tutorial a utilizar uma "Bargraph" igual ao da imagem abaixo, este componente consiste num agulmerado de 10 leds, só que com um aspeto visual "mais limpo".

Bom fiquem então com o projeto:

Material necessário:
-1 Bargraph
-1 Arduino
-10 Resistencias de 220 Ohm
-1 Potenciómetro
-Fio 


Esquema:

Código: 

const int analogPin = A0;   
const int ledCount = 10;    
int ledPins[] = { 
  2, 3, 4, 5, 6, 7,8,9,10,11 };   

void setup() {
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT); 
  }
}

void loop() {

  int sensorReading = analogRead(analogPin);
  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
  for (int thisLed = 0; thisLed < ledCount; thisLed++)
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    } 
    else {
      digitalWrite(ledPins[thisLed], LOW); 
    }
  }



Vídeo:

Instalar o arduino no Windows

Boas! Como o titulo indica realizei um tutorial onde pode aprender a instalar as drives do seu respetivo arduino, espero que gostem.
Neste  tutorial  é utilizado o Arduino Leonardo , mas poderia ser utilizado outro como por exemplo Arduino uno.

Material necessário para este tutorial:
 - Arduino uno/ Leonardo/Mega ...
 - PC com Windows 7/Windows Vista 
 - Cabo do seu respetivo arduino
Após ter todo o material necessário siga os seguintes passos:

  -Passo 1: Após conectar o Arduino ao PC através do respectivo cabo usb, então aparcerá uma mensagem  no windows com o texto "Software de controlador de dispositivo instalado sem êxito.";


  -Passo 2: Após aparecer esta mensagem abra o painel de controlo do windows e clique em "Hardware e Som";


  -Passo 3: Em seguida clique em "Gestor de Dispositivos" no canto superior direito;


  -Passo 4: Agora selecione o respetivo arduino não instalado no windows , este deverá aparecer com um ponto de exclamação;


  -Passo 5: Após selecionado, clique sobre este om o botão direito do rato e selecione a opção "Propriedades";


  -Passo 6: Assim que a janela "Propriedades de Arduino XXX" abrir  clique sobre o botão "Actualizar Controlador";


  -Passo 7: Agora irá aparecer uma janela com duas opções, selecione a opção "Procurar software do Controlador no computador"; 


  -Passo 8: Caso ainda não tenha feito o download do Software do Arduino esta é a altura  , assim feito o download do software, extrai- o e decore a sua localização, em seguida volte á janela e clique sobre o botão "Procurar";


  -Passo 9: Localize o local para onde extraio o Software arduino, abra a respetiva pasta  e selecione a subpasta "Drivers" conforme a imagem abaixo, e clique no botão "OK";


  -Passo 10: Agora é só  clicar sobre o botão "seguinte";


  -Passo 11: Se lhe aparecer uma janela como na imagem abaixo, não se preocupe,isto deve- se ao fato do windows não reconhecer o fabricante dos drivers, nada de alarmante, apenas selecione a opção "Instalar este software do controlador mesmo assim";


  -Passo 12: Agora deverá aparecer a mensagem "O windows actualizou o software de controlador com êxito";


  -Passo 13: Caso deseje verificar se a instalação deste foi bem sucedida, abra o software  do Arduino, e poderá ver algo como na imagem abaixo, faça então o upload do exemplo "bink" e verifique se o led do pino digital  13 do Arduino está a piscar com o intervalo de um segundo.


Atenção: Se mesmo a seguir estes passos não seja bem sucedido deixe um comentário com a sua duvida.

Arduino Leonardo

   Boas pessoal!
   Ultimamente tenho andado um pouco afastado do blog, mas já tenho alguns projetos em mente, agora é apenas uma questão de tempo até o meu arduino Leonardo chegar. :D

   Bom mas passemos ao que interessa , tal como o nome do post indica venho aqui falar um pouco da nova placa com a marca Arduino, esta destaca-se visualmete pelo seu conector usb( micro usb) e por ter apenas um só microcontrolador embutido, isto deve-se ao fato de que este chip(ATmega32u4) possibilitar a inteface de comunicação usb, substituindo assim o chip da ftdi e o ATmega8U2, outra vantagem que também se destaca é o seu custo ser menor ao arduino uno rondando os 18 €.
   Mas nem tudo são vantagens  pois sendo o  ATmega32u4  smd,  um dos conceitos principais do arduino ( a remoção do chip Atmega 328 para trabalhos por exemplo em breadboards) foi perdida.
   Uma curiosidade deste arduino é a possibilidade de emulação dos periféricos rato e teclado , ou seja  podemos assim fazer projetos com uma interface mais elaborada como por exemplo um comando para jogos.
   Abaixo seguem mais algumas caracteristicas do arduino leonardo assim como um video de apresentação deste pelo próprio Massimo Banzi:


Caracteristicas do Arduino Leonardo:

  • Microcontrolador ATmega32u4
  • Tensão de entrada (recomendada) : 7-12V
  • Tensão de entrada limites) : 6-20V
  • Pinos Digitais de Entrada/Saída: 20
  • Canais de  PWM: 7
  • Canais de entrada Analógica: 12
  • Clock: 16MHz
  • Corrente DC por cada pino de E/S operando a 5V: 40 mA
  • Corrente DC por cada pino de E/S operando a 3V: 50 mA
  • 32 KB de memória Flash (4KB são utilizados pelo bootloader)
  • SRAM: 2.5 KB ( ATmega32u4)
  • EEPROM: 1KB ( ATmega32u4)


Onde comprar o arduino?

Boas pessoal!
Neste post resolvi apresentar  alguns sites onde existem as melhores opções para a compra do arduino e seus respectivos componentes.


Em portugal existem várias lojas de electrónica aqui irei apresentar apenas uma lista daquelas que acho que têm os melhores preços:
http://www.g7electronica.net/ - Tenho feito várias compras de lá e na maior parte das vezes vêem extras incluídos nas encomendas, já para não falar nas promoções que fazem  de vês em quando.
-http://www.ptrobotics.com/ - Mais uma loja onde já fiz várias encomendas e estas chegam sempre rápido (no prazo de 3 dias), nestas encomendas a maior parte das vezes também vêem incluídos alguns extras como leds.
-http://www.inmotion.pt - esta deve ser uma das mais completas para quem quer comprar o arduino, pois esta loja deve ser a que contém mais shields para o arduino, e também algumas placas de breakout.
-http://www.ledsandchips.com/shop/  - outra loja com bons preços.
-http://nanoloja-njay.embeddeddreams.com/ - nesta "loja" podem encontrar componentes electrónicos a preços bastante baixos.
-http://www.e-shop.goodluckwith.us/shop/category.php?id_category=32 em portugal segundo aquilo que eu encontrei esta é a loja com melhores preços para a compra da placa arduino(em portugal).
-http://www.olx.pt/userlistings/venda4you -  aqui podem ainda encontrar algum conteúdo de electrónica a baixo preço.

No estrangeiro podemos ver várias lojas através da página oficial de venda do arduino
http://arduino.cc/en/Main/Buy 


Melhores preços
Sem duvida alguma que os melhores preços para a compra de placas arduino são:
 - ebay
 - http://s.dealextreme.com/search/arduino

Alguma sugestão ou correcção agradecia que me fossem dirigidos através dos comentários!
Cumprimentos Rui Marinho!

Led Fade - arduino

   Neste simples tutorial, com base no site do arduino vou demonstrar como utilizar a função "analogWrite" presente no arduino.
   A função "analogwrite" não é nada mais que a utilização do PWM(pulse width modulation)  ou em português modulação da duração do pulso, o pwm está presente apenas em alguns pinos do arduino, no caso do duemilinove/uno nos pinos 11,10,9,6,5,3, e esta função permite que exista uma variação dos volts(0V - 5V) que são fornecidos por exemplo ao pino 10, ou seja pode se dizer que é um variador de tensão.
Então mãos à obra!
Circuito:



Código:


int led = 10;           //pino onde irá ligar o led
int brightness = 0;    // quanto brilho terá o led
int fadeAmount = 5;    // how many points to fade the LED by




void setup() 
 { 
  pinMode(led, OUTPUT);



void loop()  { 
  
  analogWrite(led, brightness);// função analogwrite, temos o pino led, e temos a o brilho , ou o valor do pwm   


  // Altera o brilho do led no loop seguinte
  brightness = brightness + fadeAmount;


  // reverte a direção do fade, passando de incrementar valores a descrementar e vice versa
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  
  delay(30);                            
}

Espero que gostem, alguma correção ou questão a fazer é só comentar.
Fiquem bem, cumprimentos Rui Marinho !

Arduino Knob - Servo e potenciómetro

Boas Pessoal!
Hoje trago um mini tutorial de como controlar a rotação do servo através do potenciómetro, abaixo deixo -vos com o código, o material utilizado, o esquemático de ligações ao arduino, e vou ainda fazer um vídeo deste em funcionamento :


Material utilizado:
-Um Servo Motor
-Um Arduino 
-Um Potenciómetro 
-Uma BreadBoard
-Fio

Esquemático de ligações:

Código:
-----------------------------

#include <Servo.h> //incluir a livraria "servo"
Servo myservo;  // cria uma variável  com o nome "myservo" para o controlo do servo 

int val;    //variável que vai armazenar os valores fornecidos pelo potenciómetro
void setup() 
  myservo.attach(6);  //  o servo liga ao pino 6 do arduino 
void loop() 
  val = analogRead(A0);            // lê o valor presente no pino analógico 0
  val = map(val, 0, 1023, 0, 179);     // escala o valor  para usar  com o servo ( o valor vai de 0º a 179 º)
  myservo.write(val);                  // muda a posição em que se encontra o servo de acordo com o valor escalado 
  delay(5);                           // intervalo de 5 milisegundos
}


----------------------------
Cumprimentos Rui Marinho!

Interligação entre VB e arduino


    Boas pessoal
    Neste post vamos mostrar como ligar e desligar pinos do arduino através do programa Visual Basic - “VB.Net ”.:
Abaixo fiquem com aulgumas imagens do programa e o link para o download destes :








Links:
      Programas
           Visual Studio
            Arduino


Espero ter ajudado
Comprimentos 
Marco Joel 

Arduino o documentário- legendas pt-br

Boas pessoal!
Hoje trago - vos um documentário que já andava para publicara à algum tempo!
Este documentário fala - nos da ferrementa open-source "Arduino", desde como esta foi criada, a previsões para o futuro e todas as possibilidades de criação que esta tem.
Então fiquem com vídeo do documentário(partilhem):
Fiquem bem!
Cumps Rui Marinho!

Projecto arduino - Detector de gás


Boas pessoal!
Hoje trago - vos mais um projecto, neste caso um detector de gás, para sensor detector de gás estou a usar o "MQ-2", este sensor tem um custo bastante reduzido, tornando assim este projecto muito fácil de realizar graças ao seu baixo custo e fácil compreensão.
Abaixo deixo o material utilizado no projecto, assim como algumas imagens e ainda um video deste em funcionamento e claro o código para arduino.
Caso o vosso sensor demore ou não seja tão "sensível" ao gás, isso é por causa do trimer inserido na placa de breakout, por isso basta com uma chave de fendas ir rodando o trimer até que esteja "sensível" ao valores como querem
Material Utilizado:
-MQ-2 Gas Sensor ( datasheet )
-Buzzer de 5v
-1Led
-Fio
-Arduino


Imagens: 






Vídeo:








Código:


int mq2 = A0;   //defenir o pino analógico
int val = 0;  // criação da variável para armazenar o estado do sensor de gás


void setup()
{
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
Serial.begin(9600);//processo para a comunicação serial
}


void loop() {
  val = analogRead(mq2); //linha de código para armazenar os valores obtidos do sensor de gas  na  variável inteira  "Val"
 Serial.println(val);//envia o valor armazenado na variável "val" para a porta serial 
delay(1000);//intervalo de tempo de 1 segundo
if (val >= 800) {// se os valores obtidos e armazenados na variavel val forem maiores ou iguais a 800 então irá ser activado o buzzer por 3 segundos, e será ligado o led do pino 13
 digitalWrite(13,1);
 tone(12,2999,3000);
 delay(1000);
}
if (val < 800) {// se os valores obtidos e armazenados na variavel val forem menores que 800 então o led do pino 13 apaga-se
 digitalWrite(13,0);
 delay(1000);
}
}


Cumprimentos Rui Marinho!

Projecto arduino - Tracker solar



Boas Pessoal!
Hoje trago-vos mais um projecto, desta vês um "tracker solar".Este é constituído por um estrutura "pan tilt" com 2 Servos,  temos a base onde está o arduino e bread-board,4 ldrs e claro um painel solar. Basicamente o que isto faz é comparar os valores entre os quatro ldrs e virar o painel solar para a parte onde etsá a ser recebida mais luz.
Abaixo segue  o material utilizado,  imagens do projecto,um vídeo do tracker solar em funcionamento, esquemático de ligações e ainda o código em arduino.


Material utilizado:
-Pan-Tilt com 2 servos
-Estrutura em metal
-Uma bread board
-Um arduino
-4 Ldrs
-4Resistências de 10Kohms
-1Painel solar
-Parafusos
-Um pouco de cola quente
-Fio


Imagens














Vídeo:

Código:
---------------

#define LedPin1 4  
#define LedPin2 5

    #include <Servo.h>

    Servo myservo;
    int pos = 0;  
    int inputesquerda = A1; 
    int inputdireita = A0;

    int esquerda = 0; 
    int direita = 0; 
    
    Servo myservo2;
    int pos2 = 0; 
    int inputcima = A2;
    int inputbaixo = A3;
    int ldr = A5
    int tldr = 0

    int cima  = 0; 
    int baixo = 0; 
    void setup()
    {
    myservo.attach(9);
    myservo2.attach(10); 
    }

    void loop()
    {
      pinMode(LedPin1, OUTPUT);  
pinMode(LedPin2, OUTPUT); 
    Left = analogRead(inputesquerda);
    Right = analogRead(inputdireita);
    tldr = analogRead(ldr);
    if (esquerda > (direita +20))
    {
    if (pos < 179)
    pos++;
    myservo.write(pos);
    }
 if(tldr>512){
   digitalWrite(LedPin1,HIGH);
   digitalWrite(LedPin2,HIGH);
 }
 else{
      digitalWrite(LedPin1,LOW); 
   digitalWrite(LedPin2,LOW);
 }
    if (direita > (esquerda +20))
    {
    if (pos > 1)
    pos -= 1;
    myservo.write(pos);
    }
    delay(10);
    cima = analogRead(inputcima);
    baixo = analogRead(inputbaixo);
    if (cima > (baixo +20))
    {
    if (pos2 < 179)
    pos2++;
    myservo2.write(pos2);
    }
    if (baixo > (cima +20))
    {
    if (pos2 > 1)
    pos2 -= 1;
    myservo2.write(pos2);
    }

    delay(10);
    }

-----------------------
NOTA: CÓDIGO NÃO TESTADO, É FAVOR DE AVISAREM CASO ESTE ESTEJA MAL FEITO


Cumprimentos Rui Marinho !

Livro de introdução ao Arduino

Boas pessoal!

Hoje venho aqui partilhar um livro que achei na Internet, este livro é direccionado a quem é iniciante na ferramenta Arduino, e o seu conteúdo é realmente muito bom, pois neste livro podem ver tudo aquilo que necessitam para iniciar a programação em Arduino e todos os seus conceitos básicos.
Abaixo deixo o link ara o download e a fonte de origem do livro:
Para fazer o download do livro clique aqui

Para mais informações acerca deste livro: http://www.ordemnatural.com.br/

mini-bot v 1.0


Boas!
Hoje vou apresentar aqui um projecto ao qual vai ser dada continuidade daqui para a frente.Para já ficam com a primeira versão do projeto.

Vídeo:


Imagens:
                         




Código em arduino:
----------------------------------------------------------------
void setup()
{
Serial.begin(9600);

pinMode(13, OUTPUT);//motor frente
pinMode(12, OUTPUT);//motor da frente
pinMode(11, OUTPUT);//pwm motor da frente
pinMode(10, OUTPUT);//pwm motor de traz
pinMode(9, OUTPUT);//motor de tras
pinMode(8, OUTPUT);//motor de tras

}


void loop( ){
char x = Serial.read();


  if (x=='a'){//avançar
    digitalWrite(13,0);
    digitalWrite(12,1);
    analogWrite(11,200);
    Serial.print('a recebido');
  }
    if (x=='b'){//recuar
    digitalWrite(13,1);
    digitalWrite(12,0);
    analogWrite(11,200);
    Serial.print('b recebido');
  }


      if (x=='c'){//virar a esquerda 
    digitalWrite(9,0);
    digitalWrite(8,1);
    analogWrite(10,200);
    Serial.print('c esquerda');
  }
    if (x=='d'){//virar a direita
    digitalWrite(9,1);
    digitalWrite(8,0);
    analogWrite(10,200);
    Serial.print('d direita');
  }
  if (x=='e'){//para parar
   analogWrite(11,0);
    digitalWrite(13,0);
    digitalWrite(12,0);
    analogWrite(9,0);
    digitalWrite(8,0);
    digitalWrite(10,0);
   
    Serial.print('e parado');
  }


}
-------------------------------------------------------------------


Download do programa em visual basic: 
http://dl.dropbox.com/u/50854449/mini-robot%20v%201.0.rar


Para saberem mais sobre comunicação Vb arduino visitem :
 http://engenhocas4you.wordpress.com/

Espero que gostem!
Cumprimentos Rui Marinho!

Sensor CNY70 + arduino

Boas pessoal
 Neste post vamos ver como funciona o sensor CNY70( sensor de infravermelhos) este sensor tanto pode fornecer valores  analógicos como digitais mas neste post só esta a fornecer valores digitais (0,1)
Esquema de montagem:



Codigo em arduino

---------------------------------------

int inPin = 4; // pino 4
int valor = 0; //
void setup() {

Serial.begin(9600);
pinMode(inPin, INPUT);

}
void loop() {
valor = digitalRead(inPin); //guardar valor lido na variavel valor

Serial.println(valor);//mostra o valor lido no serial monitor
delay (500);

}
-----------------------------------------

Imagens da placa de circuito impresso




Links:

Comprimentos Marco Joel

Buzzer + Arduino

Boas!
Hoje vou fazer um simples tutorial de como ligar um buzzer  ao arduino.
Neste tutorial estou a usar uma nova função no arduino, com o nome de "tone"( em português tom) basicamente o que esta função faz é dar a frequência  que o buzzer irá emitir para assim formar um determinado som, muito simples.
Abaixo  segue o código de arduino com esquema  de ligação do buzzer:


Esquema:~




Código:
------------------------------------------------
 void setup(){
pinMode(13,OUTPUT);//define o pino 13 do arduino como saida digital
}
void loop(){
//play tone
tone(13,2999,800);// esta linha de código é usada especialmente para o buzzer
//O seu funcionamento é : o pino, a frequência e o tempo de duração em milissegundos
//delay (ms)
delay(1000);
}
---------------------------------------------------

Espero que gostem, cumprimentos Rui Marinho!

Controlo Motores L293D+ Arduino "Versão 2"

Boas
Aqui fica a 2 versão do controlo de motores com o L293D, este já com vídeo e com a placa em eagle, também com umas pequenas alterações no código, irão reparar de imediato quendo olharem para o código.
Já agora o PWM é uma abreviatura de (  Pulse Width Modulation ), serve para podermos controlar a velocidade de um motor de 0-255
Esquema de Montagem







Manual da Placa de circuito impresso



Imagens da placa de circito impresso




Esta placa pode ser colucada em cima do arduino.

Código
-----------------------------------------

void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}

void loop()
{
digitalWrite(13,1); //Motor 1
digitalWrite(12,0); //Motor 1
digitalWrite(9,0); //Motor 2
digitalWrite(8,1);//Motor 2
analogWrite(11,50); //Motor 1 PWM
analogWrite(10,50); //Motor 2 PWM
delay (2000);
digitalWrite(13,HIGH); //Motor 1
digitalWrite(12,LOW); //Motor 1
digitalWrite(9,HIGH); //Motor 2
digitalWrite(8,LOW);//Motor 2
analogWrite(11,50); //Motor 1 PWM
analogWrite(10,50); //Motor 2 PWM
delay (2000);
digitalWrite(13,0); //Motor 1
digitalWrite(12,1); //Motor 1
digitalWrite(9,0); //Motor 2
digitalWrite(8,0);//Motor 2
analogWrite(11,50); //Motor 1 PWM
analogWrite(10,50); //Motor 2 PWM
delay (2000);
digitalWrite(13,1); //Motor 1
digitalWrite(12,0); //Motor 1
digitalWrite(9,0); //Motor 2
digitalWrite(8,0);//Motore2
analogWrite(11,20); //Motor 1 PWM
analogWrite(10,100); //Motor 2 PWM
delay (2000);
digitalWrite(13,LOW); //Motor 1
digitalWrite(12,HIGH); //Motor 1
digitalWrite(9,LOW); //Motor 2
digitalWrite(8,LOW);//Motor 2
analogWrite(11,100); //Motor 1 PWM
analogWrite(10,20); //Motor 2 PWM
}
-----------------------------------------

Controlo Motores L293D+ Arduino


Boas

Com este esquema representado a baixo, podemos fazer o controlo de 2 motores DC, este código em arduino consiste em   fazer com que os motores andem para a frente 2 seg. a uma certa velocidade, mais 2 seg. a outra velocidade e assim sucessivamente.
Os materiais necessários são:

1 Drive L293D, para controlo dos motores
2 Motores DC
1 Arduino
Fios de ligação
1 Breadboard

Esquema de Ligação:

Código:


-----------------------------------------
void setup()
{
Serial.begin(9600);
}

void loop()
{
digitalWrite(13,HIGH); //Motor 1
digitalWrite(12,LOW); //Motor 1
digitalWrite(9,HIGH); //Motor 2
digitalWrite(8,LOW);//Motor 2
analogWrite(11,50); //Motor 1 PWM
analogWrite(10,50); //Motor 2 PWM

delay (2000);
digitalWrite(13,LOW); //Motor 1
digitalWrite(12,LOW); //Motor 1
digitalWrite(9,HIGH); //Motor 2
digitalWrite(8,LOW);//Motor 2
analogWrite(11,50); //Motor 1 PWM
analogWrite(10,50); //Motor 2 PWM

delay (2000);
digitalWrite(13,LOW); //Motor 1
digitalWrite(12,HIGH); //Motor 1
digitalWrite(9,LOW); //Motor 2
digitalWrite(8,LOW);//Motor 2
analogWrite(11,50); //Motor 1 PWM
analogWrite(10,50); //Motor 2 PWM

delay (2000);
digitalWrite(13,HIGH); //Motor 1
digitalWrite(12,LOW); //Motor 1
digitalWrite(9,HIGH); //Motor 2
digitalWrite(8,LOW);//Motore2
analogWrite(11,20); //Motor 1 PWM
analogWrite(10,100); //Motor 2 PWM

delay (2000);
digitalWrite(13,LOW); //Motor 1
digitalWrite(12,HIGH); //Motor 1
digitalWrite(9,LOW); //Motor 2
digitalWrite(8,LOW);//Motor 2
analogWrite(11,100); //Motor 1 PWM
analogWrite(10,20); //Motor 2 PWM
}
----------------------------------------
Nota: Mais para a frente irei actualizar este post com uma placa em EAGLE, e com um vídeo  do drive e dos motores em funcionamento.

"Eagle Cad Soft" é um programa em que se desenha o esquema do circuito com os seus devidos componentes  e que depois com uma função automatica do EAGLE cria as pistas automaticamente numa face ou em dupla face, depois imprime-se as pistas para acetato e segue-se o devido procedimento para passar as pistas para as placas pcb.

Fica aqui uma imagem da a placa em EAGLE, esta placa pode ser encaixada no arduino uno ou mega:


LINK´s:
Datasheet do drive L293D:



Comprimentos Marco Joel !