pub1

terça-feira, 21 de outubro de 2014

O novo Portal www.ArduinoPortugal.pt é uma ideia que surgiu na necessidade de reunir a comunidade de Makers em Portugal que pretende saber mais sobre esta maravilhosa plataforma de programação, o Arduino.

Queremos neste espaço divulgar os projetos desenvolvidos sobre a plataforma Arduino, tutoriais, manuais, código, exemplos e motivar outros a dar os primeiros passos nesse caminho e ainda ajudar, partilhar, esclarecer em todas as questões que estão ao alcance, de todos nós.

Para isso contamos com a vossa ajuda, que é essencial para o suporte desta ideia. Pretendemos que todos vocês colaborem com fotos, vídeos do vosso projeto, códigos utilizados, tutoriais sobre artigos relacionados, tudo que possa ser de ajuda, a quem vier a seguir o mesmo caminho.

Podem sempre contactar-nos para envio dessa informação pelo email habitual:
info[arroba]arduinoportugal.pt

quarta-feira, 22 de setembro de 2010

Arduino - Como controlar 2 Motores DC

Vou agora basear-me no esquema do post anterior para vos mostrar como podem controlar dois motores simultaneamente. Este esquema é optimo para quem tem um motor frente e para trás, e utiliza outro para direção esquerda direita como acontece nos carrinhos telecomandados por exemplo.

Ou até mesmo quem tem dois motores mas com direcção e tracção semelhante a este:

Esquema L298 ao Arduino:
(Cliquem na imagem para a aumentar)
Codigo Arduino:


int pin2 = 2;
int pin3 = 3;
int pin4 = 4;
int pin5 = 5;


void setup (){

     pinMode(pin3,OUTPUT);
     pinMode(pin2,OUTPUT);
     pinMode(pin4,OUTPUT);
     pinMode(pin5,OUTPUT);
}

void loop(){
  {
    //Para a frente
     digitalWrite(pin2,HIGH);
     digitalWrite(pin3,LOW);
     delay(2000);  
     //Para trás
     digitalWrite(pin3,HIGH);
     digitalWrite(pin2,LOW);
     delay(2000); 
     //Para a esquerda
     digitalWrite(pin4,HIGH);
     digitalWrite(pin5,LOW);
     delay(2000);  
     //Para a direita
     digitalWrite(pin5,HIGH);
     digitalWrite(pin4,LOW);
     delay(2000); 
   }
}


Qualquer duvida contactem me, se as coisas nao funcionem verifiquem todas as ligações e confirmem sempre se as baterias estão carregadas.

Arduino - Como controlar Motor DC

Este topico vai ser util para quem pretende controlar motores dc, muito utilizado por exemplo em robots visto permitir atraves do nosso Arduino movimentar os motores para frente ou para tras. Neste caso vou por enquanto mostrar o controlo de 1 só motor mas o L298 permite controlar 2 motores simultaneamente.

O L298 é um H-Bridge isto é Ponte-H permitindo inverter os polos de um motor fazendo-o girar em direcções opostas, suporta uma corrente até 2A, podem ver o Datasheet Aqui L298 .

Outra possibilidade seria o SN754410que também possibilita controlar motores da mesma forma, datasheet aqui.
Vamos agora ao que realmente importa as ligações entre o Arduino e o L298:



(Cliquem na imagem para a aumentar)


Codigo Arduino:

int pin2 = 2;
int pin3 = 3;

void setup (){

     pinMode(pin3,OUTPUT);
     pinMode(pin2,OUTPUT);
}

void loop(){
  {
     digitalWrite(pin2,HIGH);
     digitalWrite(pin3,LOW);
     delay(2000); 
     digitalWrite(pin3,HIGH);
     digitalWrite(pin2,LOW);
     delay(2000); 
   }

O L298 funciona da seguinte forma:
Input 1  = 1
Input 2  = 0
O motor gira numa direcção.

Quando invertemos:
Input 1  = 0
Input 2  = 1
O motor vai girar em sentido oposto.

Construí um código bastante simples apenas como função inverter os movimentos do motor.
Com esta função já nos vai dar umas ideias para os próximos projectos..

Espero que tenha sido útil.

segunda-feira, 20 de setembro de 2010

Arduino LDR / Sensor

Olá a todos vou mostrar-vos  como utilizar um LDR que pode funcionar como sensor de movimento, como sensor de claridade, etc

Untitled-4

Podem ver abaixo as ligações deste circuito:

 ldr_bb

A programação neste caso é bem simples:

int valor = 0; // Variavel onde e guardado o valor lido do LDR
int led_pin = 8; // Pino onde vamos ligar o LED
int analogin = 5; // Pino onde vamos ligar a LDR

void setup(){
Serial.begin(9600); // Inicia A comunicação da porta Serial para que possamos ver o valor do LDR
}
void loop(){
valor = analogRead(analogin); // O valor que irá ser lido na porta analogica numero 6 irá ser guardado na variavel “valor”

Serial.print(“O valor Da LDR e igual a: “); // Mostrar na consola a frase “O valor Da LDR e igual a: “

Serial.println(valor); // Mostras no Serial Monitor o valor da variavel “valor”
delay(25); // Faz uma pequena pausa de 25 Mili Segundos

if (valor < 300) { // Se a variavel valor for menor que 300
digitalWrite(led_pin, HIGH); // acende o led da porta 8
} else { digitalWrite(led_pin, LOW); } // se for maior mantem o led da porta 8 apagado
Por fim vamos testar o que acabamos de fazer… Para isso ligamos o nosso arduino ao pc apenas para este ficar alimentado, e passamos a mão (ou algum objecto) por cima da LDR fazendo com que o LED acenda, se retiramos a mão e o LED apagar é porque está tudo a funcionar correctamente.

Untitled-5

Podem sempre utilizar o Pin 13 que tem um led incorporado no Arduino, para testar o resultado .

Texto baseado no Andred Robotics

O Arduino também nos dá Musica



O nosso Arduino também tem capacidade de reproduzir melodias, para realizarem o teste abaixo devem ligar um "speaker" um dos fios no negativo (ground) outro no pino 8 :


 #include "pitches.h"

// notes in the melody:
int melody[] = {
  NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 };

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(8, melody[thisNote],noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
  }
}

void loop() {
  // no need to repeat the melody.
}


No google podem ainda encontrar mais exemplos ou até mesmo como compor a vossa própria melodia.
Visitem http://www.arduino.cc/en/Tutorial/Melody

Divirtam-se!!

Arduino - Segundo Teste

Ok, então estamos prontos para começar a fazer algum código.

Eu pensei.. e acho que podemos fazer uma daquelas lâmpadas giras que mudam de cor que se utiliza para por na secretária.. mas como é que elas funcionam?

Bem, o que elas tem basicamente é 3 lâmpadas das cores principais, e jogar com estas para produzir varias cores. Bem, eu não tenho um LED verde mas vou utilizar um amarelo.. espero que faça algum efeito engraçado.

Vamos primeiro que tudo ligar resistências de 220 Ohms para obtermos uma boa intensidade de luz, mas evitando que estes se queimem.

Mas porque 220 Ohms? Eu não percebo nada de resistências..

Sabemos pela lei de Ohm que:

V = R x I

Onde V é os 5 Volts a que funciona o Arduino, e I é a intensidade de corrente que pretendemos ter.

A corrente que os LEDs suportam variam muito pela cor que estes emitem, e principalmente a sua dimensão (capacidade de dissipação de temperatura), mas esta anda entre os 20mA e os 50mA.

Para garantirmos que não estragamos nada vamos nos ficar pelos 20, 22mA, tendo a certeza de que estes vão dar boa luz, e não se queimarão.

Assim:

R = V / I

R = 5V / 0,022A

R = 227,27 Ohm
(que nos dá jeito utilizar resistências de 220 Ohms por serem muito comuns no mercado)

Ligamos assim os 3 LEDs a saídas digitais, para o caso PINs 11, 12 e 13, mas em cada um destes colocamos uma resistência em série ligada à massa (GRD).

Vamos fazer código de modo a que os LEDs pisquem.

int led3 =  13;
int led2 =  12;
int led1 =  11;

void setup()   {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop()                    
{
  digitalWrite(led1, HIGH);
  delay(1000);
  digitalWrite(led2, HIGH);
  delay(1000);
  digitalWrite(led3, HIGH);
  delay(1000);
  digitalWrite(led1, LOW);
  delay(1000);
  digitalWrite(led2, LOW);
  delay(1000);
  digitalWrite(led3, LOW);
  delay(1000);
}

Tutorial escrito por Tiago Rodrigues para Lusorobotica.

Arduino - Primeiro Teste


Para começar vou deixar aqui um video que me ajudou na iniciação do arduino, criado pelo Ricardo Dias:






Resumidamente por escrito depois de ter comprado um Arduino deve, ir a http://www.arduino.cc e fazer o download da ultima versão de software correspondente ao seu sistema operativo. 

Apenas ligue os cabos e deixe que o sistema instale o adaptador R232-USB, e depois corra a aplicação Arduino, verifique se a porta COM escolhida na aplicação, e a versão da placa Arduino correspondem à sua configuração, apartir do menu "Tools" como no vídeo abaixo.

Vamos apenas fazer algo para testar se está tudo ok, carregando um código de testes, "File"->"Sketchbook"->"Examples"->"Digital"->"Blink"

Se tiver a versão Diecimila, é só fazer upload do código, e o led laranja piscara de segundo a segundo como no vídeo. Caso tenha outra versão terá de ligar um LED em série com uma resistência de 330 Ohm (para evitar que o led queime), entre o pin 13, e o GRD (atenção à polarização do LED ou este não acenderá).


Depois disto temos o nosso Arduino a funcionar, com o primeiro código a correr.