domingo, 16 de junho de 2019

Acionando 3 LED’s com Arduino Open Smart


    Neste projeto vamos aprender a acionar LED’s com os botões disponíveis na placa.

Sobre o Arduino Open-Smart



- A placa possui LED’s, botoeiras e buzzer instalados, isto facilita na implementação de projetos.
- A carga pode ser feita no Arduino IDE, configurando como placa Arduino Uno.
- Para controlar a porta USB ele utiliza o chip CH340, para ser reconhecido, um driver deve ser instalado, veja neste link AQUI !


Abaixo o esquema de ligação dos componentes adicionais.



LISTA DE COMPONENTES:

1 - Arduino Uno
Open Smart;
1 – Cabo USB;
3 – Resistores de 1K ohms;

Circuito a ser montado:


Os pinos digitais 2 à 4 estão ligados às chaves táctil, o pino 6 ao Buzzer e os LED’ aos pinos digitais 7, 8 e 13.


Arduino Open-smart
Componente
Pino 13
LED Vermelho
Pino 8
LED Verde
Pino 7
LED Laranja
Pino 2
Botão K3
Pino 3
Botão K2
Pino 4
Botão K1
Pino 6
Buzzer

Ligar resistores de 1K ohms dos pinos 2, 3 e 4 ao 5v.


Programando o Arduino:

O código abaixo fará com que, quando as chaves forem acionadas os LED’s irão acender. Ao acionar a chave K1 o buzzer também é acionado.

Código.


Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

const int button1 = 4;
const int button2 = 3;
const int button3 = 2;
const int led1 = 13;
const int led2 = 8;
const int led3 = 7;

const int buzzer = 6;

int buttonState = 1;

void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(buzzer, OUTPUT);
}

void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(button1);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == LOW) {
// turn LED on:
digitalWrite(led1, HIGH);
digitalWrite(buzzer, HIGH);
} else {
// turn LED off:
digitalWrite(led1, LOW);
digitalWrite(buzzer, LOW);
}
buttonState = digitalRead(button2);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == LOW) {
// turn LED on:
digitalWrite(led2, HIGH);
} else {
// turn LED off:
digitalWrite(led2, LOW);
}
buttonState = digitalRead(button3);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == LOW) {
// turn LED on:
digitalWrite(led3, HIGH);
} else {
// turn LED off:
digitalWrite(led3, LOW);
}
}

Após carregar o código no Arduino, toque nas chaves para testar.

Você pode comprar o Arduino Open Smart neste link Aqui !


Semáforo com Arduino Open Smart


     Neste projeto vamos aprender a fazer um semáforo.

Sobre o Arduino Open-Smart





- A placa possui LED’s, botoeiras e buzzer instalados, isto facilita na implementação de projetos.
- A carga pode ser feita no Arduino IDE, configurando como placa Arduino Uno.
- Para controlar a porta USB ele utiliza o chip CH340, para ser reconhecido um driver deve ser instalado, veja neste link AQUI !


Abaixo o esquema de ligação dos componentes adicionais.



      

LISTA DE COMPONENTES:


1 - Arduino Uno Open-smart
1 – Cabo USB



Circuito a ser utilizado:


     Os LED’s já estão ligados a placa Arduino Open-Smart.

Arduino Open-smart
LED
Pino 13
Vermelho
Pino 8
Verde
Pino 7
Laranja






  

Programando o Arduino:


     O código abaixo fará com que os LED’s acendam na seqüência necessária ao funcionamento sincronizado de um semáforo para carros.

Código.


     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

Semáforo 

int vda = 8;
int vma = 13;
int lra = 7;
void setup()
{
  pinMode(vda, OUTPUT);
  pinMode(vma, OUTPUT);
  pinMode(lra, OUTPUT);
 
}

void loop()
{
  carro_l();
  delay(3000);
  alerta();
  delay(1000);
  parar_l();
  delay(3000);
 
 
}

void carro_l()
{
  digitalWrite(vda, HIGH);
  digitalWrite(vma, LOW);
  digitalWrite(lra, LOW);
 
}
void alerta()
{
  digitalWrite(vda, LOW);
  digitalWrite(vma, LOW);
  digitalWrite(lra, HIGH);
}
void parar_l()
{
  digitalWrite(vda, LOW);
  digitalWrite(vma, HIGH);
  digitalWrite(lra, LOW);
 
}


     Após carregar o código no Arduino, você verá o funcionamento sincronizado do semáforo. Em Delay o tempo de cada LED pode ser alterado.

Você pode comprar o Arduino Open Smart neste link Aqui !

domingo, 28 de abril de 2019

Arduino WAVGAT

Diferenças básicas do Arduino WAVGAT para o convencional.

* Processador: AVGA328p ou LGT8F328D ao invés do ATMEGA328P
* Pinos GPIO: 3,3V ao invés de 5V
* Pinos ADC: 3,3V ao invés de 5V
* ADC: 12 bits ao invés de 10 bits (mas pode ser configurado como 10 bits)
* Portas com PWM: 5/6/9/10/11 ao invés de 3/5/6/9/10/11

Caso sua placa Arduino seja WAVGAT, alguns arquivos devem ser copiados para o ARDUINO IDE.

- Baixe o arquivo UPDATE do link AQUI !


Ou copie do CD, caso tenha em mãos.



quarta-feira, 17 de abril de 2019

Gráfico de Barra com LEDs


    Neste projeto vamos aprender a fazer um gráfico de barra que é controlado por um potenciômetro.   

LISTA DE COMPONENTES:


1 - Arduino Uno;
10 - LEDs;
10 - Resistores de 220 ohms;
1 - Protobord;
1 - Potenciômetro;
Alguns jumpers;


Circuito a ser montado:


     Os pinos digitais  2 à 11 estão ligados aos LEDs, também em cada LED há um resistor de 220 ohms para limitar a corrente. O potenciômetro está ligado ao pino A0, 5V e GND.

Arduino
Componente
Pino 2
LED
Pino 3
LED
Pino 4
LED
Pino 5
LED
Pino 6
LED
Pino 7
LED
Pino 8
LED
Pino 9
LED
Pino 10
LED
Pino 11
LED
Pino A0
Potenciômetro





Programando o Arduino:


     O código abaixo fará com que ao girar o potenciômetro os LEDs acendam em seqüência.

Código:


     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

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);
    }
  }
}


     Após carregar o código no Arduino, você pode girar o potenciômetro para ver o acendimento seqüencial dos LED’s. Com algumas adaptações podemos trocar o potenciômetro por uma fonte de som, isto faria com que conforme o som toque os LEDs acendam na mesma intensidade.

Os componentes deste tutorial podem ser comprados AQUI!

terça-feira, 16 de abril de 2019

Sequencial de LEDs com botão Arduino


    Neste projeto vamos aprender a fazer um sequencial de LED’s acionado por um botão.  

LISTA DE COMPONENTES:


1 - Arduino Uno;
5 - LED’s, cores diversas;
1 - Protobord;
1 - Chave táctil;
5 - Resistores 220 ohms;

1 - Resistor 10 K ohms; 
Alguns jumpers;


Circuito a ser montado:


     Os pinos digitais  2 à 6 estão ligados aos LEDs e o 7 a chaves táctil.

Arduino
Componente
Pino 2
LED 1
Pino 3
LED 2
Pino 4
LED 3
Pino 5
LED 4
Pino 6
LED 5
Pino 7
Chave





Programando o Arduino:


     O código abaixo fará com que, quando a chave for acionada os LEDs vão acender em uma seqüência.

Código.


     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
const int led4 = 5;
const int led5 = 6;
const int botao = 7;

int estadoBotao = 0;

void setup() {
  pinMode(led1,OUTPUT); 
  pinMode(led2,OUTPUT);   
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);    
  pinMode(led5,OUTPUT);
  pinMode(botao,INPUT);        .
}


void loop() {
  estadoBotao = digitalRead(botao);
  
  if (estadoBotao == HIGH) {
   
    digitalWrite(led1,HIGH);
    delay(1000);   
    digitalWrite(led2,HIGH);
    delay(1000);   
    digitalWrite(led3,HIGH);
    delay(1000);   
    digitalWrite(led4,HIGH);   
    delay(1000);
    digitalWrite(led5,HIGH);
    delay(1000);
  } else {
   
    digitalWrite(led1,LOW);   
    digitalWrite(led2,LOW);
    digitalWrite(led3,LOW);
    digitalWrite(led4,LOW);
    digitalWrite(led5,LOW);
  }
}


     Após carregar o código no Arduino, toque a chave para testar o acendimento sequencial. Você pode mudar o tempo de Delay para alterar o tempo de acendimento.

Os componentes deste tutorial pode ser comprados AQUI!

Piano com memória utilizando o Arduino



    Neste projeto vamos aprender a fazer um piano que após tocar uma música ele repete o que foi tocado.  

LISTA DE COMPONENTES:


1 - Arduino Uno;
8 - chaves táctil;
1 - Protobord;
1 - Buzzer;
Alguns jumpers;


Circuito a ser montado:


     Os pinos digitais  2 à 9 estão ligados às chaves táctil e o pino 10 ao Buzzer.

Arduino
Componente
Pino 2
Chave repete
Pino 3
Chave tom
Pino 4
Chave tom
Pino 5
Chave tom
Pino 6
Chave tom
Pino 7
Chave tom
Pino 8
Chave tom
Pino 9
Chave tom
Pino 10
Buzzer




Programando o Arduino:


     O código abaixo fará com que, quando as chaves de tom forem acionadas o buzzer emitirá o som correspondente e ao acionar a chave repete, a sequência de tons tocados se repetirá.

Código.


     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

int val=0;
int buzzer = 10;
unsigned long on_time=0;
unsigned long off_time=0;
unsigned long button_ontime[20];
unsigned long button_offtime[20];
int button_seq[20];
int button1=3;
int button2=4;
int button3=5;
int button4=6;
int button5=7;
int button6=8;
int button7=9;
int button8=10;
int frequency[] = {262, 294, 330, 349, 392, 440, 494};

int buttonPin = 2;
int previousState = HIGH;
unsigned int previousPress;
volatile int buttonFlag;
int buttonDebounce = 20;


int path=1;
int i=0;
int led=13;
void playback (void);

void setup()
{
Serial.begin(9600);
pinMode(buzzer,OUTPUT);
pinMode(led,OUTPUT);

///////////////
pinMode(button1,INPUT_PULLUP);
pinMode(button2,INPUT_PULLUP);
pinMode(button3,INPUT_PULLUP);
pinMode(button4,INPUT_PULLUP);
pinMode(button5,INPUT_PULLUP);
pinMode(button6,INPUT_PULLUP);
pinMode(button7,INPUT_PULLUP);
pinMode(button8,INPUT_PULLUP);
pinMode(buttonPin,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), button_ISR, CHANGE);
analogWrite(buzzer,0);
digitalWrite(led,HIGH);
}

void loop()
{
if(path==0)
{
  Serial.println("playback");
  playback();
}
if((millis() - previousPress) > buttonDebounce && buttonFlag)
  {
    previousPress = millis();
    if(digitalRead(buttonPin) == LOW && previousState == HIGH)
    {
      path =! path;
      previousState = LOW;
    }
   
    else if(digitalRead(buttonPin) == HIGH && previousState == LOW)
    {
      previousState = HIGH;
    }
    buttonFlag = 0;
  }

if(digitalRead(button1)==LOW)
{
  analogWrite(buzzer,frequency[0]);
  on_time=millis();
  if(i>0)
  {
    button_offtime[i-1]=on_time-off_time;
  }
  while(digitalRead(button1)==LOW);
  if(path==1)
  {
    off_time=millis();
    button_ontime[i]=(off_time-on_time);
    button_seq[i]=0;
    i++;
    Serial.println("button 1 stored");
  }
}

else if(digitalRead(button2)==LOW)
{
analogWrite(buzzer,frequency[1]);
on_time=millis();
if(i!=0)
button_offtime[i-1]=on_time-off_time;
while(digitalRead(button2)==LOW);
if(path==1)
  {
    off_time=millis();
    button_ontime[i]=(off_time-on_time);
    button_seq[i]=1;
     i++;
     Serial.println("button 2 stored");
  }
}

else if(digitalRead(button3)==LOW)
{
analogWrite(buzzer,frequency[2]);
on_time=millis();
if(i!=0)
button_offtime[i-1]=on_time-off_time;
while(digitalRead(button3)==LOW);
if(path==1)
  {
    off_time=millis();
    button_ontime[i]=(off_time-on_time);
    button_seq[i]=2;
     i++;
     Serial.println("button 3 stored");
  }
}

else if(digitalRead(button4)==LOW)
{
analogWrite(buzzer,frequency[3]);
on_time=millis();
if(i!=0)
button_offtime[i-1]=on_time-off_time;
while(digitalRead(button4)==LOW);
if(path==1)
  {
    off_time=millis();
    button_ontime[i]=(off_time-on_time);
    button_seq[i]=3;
     i++;
     Serial.println("button 4 stored");
  }
}

else if(digitalRead(button5)==LOW)
{
analogWrite(buzzer,frequency[4]);
on_time=millis();
if(i!=0)
button_offtime[i-1]=on_time-off_time;
while(digitalRead(button5)==LOW);
if(path==1)
  {
    off_time=millis();
    button_ontime[i]=(off_time-on_time);
    button_seq[i]=4;
     i++;
     Serial.println("button 5 stored");
  }
}

else if(digitalRead(button6)==LOW)
{
analogWrite(buzzer,frequency[5]);
on_time=millis();
if(i!=0)
button_offtime[i-1]=on_time-off_time;
while(digitalRead(button6)==LOW);
if(path==1)
  {
    off_time=millis();
    button_ontime[i]=(off_time-on_time);
    button_seq[i]=5;
     i++;
     Serial.println("button 6 stored");
  }
}

else if(digitalRead(button7)==LOW)
{
analogWrite(buzzer,frequency[6]);
on_time=millis();
if(i!=0)
button_offtime[i-1]=on_time-off_time;
while(digitalRead(button7)==LOW);
if(path==1)
  {
    off_time=millis();
    button_ontime[i]=(off_time-on_time);
    button_seq[i]=6;
     i++;
     Serial.println("button 7 stored");
  }
}

analogWrite(buzzer,0);
}


void playback (void)
{
 digitalWrite(led,LOW);
 for(int j=0;j<i;j++)
 {
  analogWrite(buzzer,frequency[button_seq[j]]);
  delay(button_ontime[j]);
  analogWrite(buzzer,0);
  delay(button_offtime[j]);
 }
 i=0;
 off_time=0;
 on_time=0;
 path=1;
 digitalWrite(led,HIGH);
}




void button_ISR()
{
  buttonFlag = 1;
 
}

     Após carregar o código no Arduino, toque as chaves para testar o piano.

Os componentes deste tutorial pode ser comprados AQUI!