Pesquisar neste blog

30/01/2020

Programa 18

Número aleatório no Arduíno com display 7 segmentos

Emulador feito no tinkercad.com















#define pinA 10
#define pinB 9
#define pinC 6
#define pinD 7
#define pinE 8
#define pinF 11
#define pinG 12
#define pinPD 5
#define pinBotao 2

int numero = 10;
boolean botaoAtu = false;
boolean botaoAnt = false;

void setup() {
  // put your setup code here, to run once:
  pinMode(pinBotao, INPUT);

  pinMode(pinA, OUTPUT);
  pinMode(pinB, OUTPUT);
  pinMode(pinC, OUTPUT);
  pinMode(pinD, OUTPUT);
  pinMode(pinE, OUTPUT);
  pinMode(pinF, OUTPUT);
  pinMode(pinG, OUTPUT);
  pinMode(pinPD, OUTPUT);

  randomSeed( analogRead(A0) );
}

void loop() {
  // put your main code here, to run repeatedly:
  botaoAtu = digitalRead(pinBotao);

  if (botaoAtu && !botaoAnt) {
     numero = random(10);
  }
  botaoAnt = botaoAtu;

  switch (numero) {
      case 0:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, LOW);
        digitalWrite(pinPD, LOW);
        break;

      case 1:
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
        digitalWrite(pinPD, LOW);
        break;

      case 2:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, HIGH);
        digitalWrite(pinPD, LOW);
        break;

      case 3:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, HIGH);
        digitalWrite(pinPD, LOW);
        break;

      case 4:
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        digitalWrite(pinPD, LOW);
        break;

      case 5:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        digitalWrite(pinPD, LOW);
        break;

      case 6:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        digitalWrite(pinPD, LOW);
        break;

      case 7:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
        digitalWrite(pinPD, LOW);
        break;

      case 8:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        digitalWrite(pinPD, LOW);
        break;

      case 9:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        digitalWrite(pinPD, LOW);
        break;

      default:
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
        digitalWrite(pinPD, HIGH);
        break;
 
  }

  delay(10);
}

Créditos para:  https://cursodearduino.net/

22/01/2020

Programa 17

Função com Arduíno

#define pinLedVm 2
#define pinLedVd 3
#define pinBotao 4

boolean pisca = false;

boolean leBotao(int porta);
void piscaLED(int porta, int tempo);

void setup() {
  pinMode(pinLedVd, OUTPUT);
  pinMode(pinLedVm, OUTPUT);
  pinMode(pinBotao, INPUT_PULLUP);
}

void loop() {

  if (leBotao(pinBotao)) {
     pisca = !pisca;
  }
 

  if (pisca) {
     piscaLED(pinLedVm, 200);
     piscaLED(pinLedVd, 500);
  }
}


boolean leBotao(int porta) {
  static boolean estadoAnterior[14] = {true,true,true,true,true,true,true,true,true,true,true,true,true,true};
   
  boolean estadoBotao = digitalRead(porta);
  boolean ligado = false;
  if (!estadoBotao && estadoAnterior[porta]) {
     ligado = true;
  }
  estadoAnterior[porta] = estadoBotao;

  return ligado;
}


void piscaLED(int porta, int tempo) {
  static unsigned long delay1[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};

  if ((millis() - delay1[porta]) < tempo) {
     digitalWrite(porta, HIGH);
  } else {
     digitalWrite(porta, LOW);
  }

  if ((millis() - delay1[porta]) >= (tempo * 2) ) {
     delay1[porta] = millis();
  }
}

14/01/2020

Programa 16

Delay e millis no Arduíno



#define pinLedVd 10
#define pinLedVm 8
#define pinBotao 2

boolean estadoBotao = true;
boolean estAntBotao = true;
boolean estadoPisca = false;

unsigned long delay1 = 0;

void setup() {
  pinMode(pinLedVd, OUTPUT);
  pinMode(pinLedVm, OUTPUT);
  pinMode(pinBotao, INPUT_PULLUP);

  digitalWrite( pinLedVd, HIGH);
}

void loop() {

  estadoBotao = digitalRead(pinBotao);
  if (!estadoBotao && estAntBotao) {
     estadoPisca = !estadoPisca;
  }
  estAntBotao = estadoBotao;

  if (estadoPisca) {

    if ((millis() - delay1) >= 500) {
       digitalWrite( pinLedVm, HIGH);
    }

    if ((millis() - delay1) < 500) {
       digitalWrite( pinLedVm, LOW);
    }
   
    if ((millis() - delay1) >= 1000) {
      delay1 = millis();
    }
  } else {
    digitalWrite( pinLedVm, LOW);
  }

  delay(10);
}

Programa 15 -

Impressão e contador no Arduíno usando display LCD

Simulação feita no Tinkercad





















#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
     // set up the LCD's number of columns and rows:
     lcd.begin(16, 2);
     // Print a message to the LCD.
     lcd.print("DEUS E MAIOR ");
}

void loop() {
     // set the cursor to column 0, line 1
     // (note: line 1 is the second row, since counting begins with 0):
     lcd.setCursor(0, 1);
     // print the number of seconds since reset:
     lcd.print(millis() / 500);
}


Palavras chave:

Printing and counter in Arduino using LCD display
Impresión y contador en Arduino usando pantalla LCD
Priontáil agus cuntar in Arduino ag baint úsáide as taispeáint LCD
Druk en toonbank in Arduino met LCD-skerm
Drukowanie i liczenie w Arduino za pomocą wyświetlacza LCD
Друк та лічильник в Ардуїно за допомогою РК-дисплея
Skriva ut och räknar i Arduino med LCD-skärm
הדפסה ודלפק בארדואינו באמצעות צג LCD
Nyithak lan kontra ing Arduino nggunakake tampilan LCD
Ispis i šalter u Arduinu pomoću LCD zaslona
Печат и брояч в Arduino с помощта на LCD дисплей

13/01/2020

Programa 14 - Letras na tabela ASC

Imprimir caracteres usando while














#define pinBotao 2

void setup() {
  pinMode(pinBotao, INPUT_PULLUP);//PULLUP = evita a nececidade de 1 resistor
  Serial.begin(9600);//comunicação serial
}

void loop() {
  int n3 = 0;

  //laço de números

  for(int n1 = 0; n1 < 50; n1++){
   Serial.print(char((n1 % 10)+48));
   if(digitalRead(pinBotao) == LOW){//se a leitura for igual a desligado
    delay(400);
    break;
   }
   delay(50);
  }
  Serial.println();//pula uma linha

  //LAÇO DAS LETRAS MAIÚSCULAS
  letrasMaiusculas://endereço
  int n2 = 0;
 
  while (n2 < 50){
    //25 letras maíusculas na tabela ASC
    Serial.print(char((n2 % 25)+ 65));
    n2++;
    if(digitalRead(pinBotao) == LOW){
      delay(400);
      continue;//vai enviar para o while novamente
    }
    delay(50);
  }
  Serial.println();

  //laço das letras minúsculas
  do{
    n3 = random(25);//sorteando numero
    Serial.print(char(n3 + 97));//letra de a - z
    if(digitalRead(pinBotao) == LOW){
      delay(400);
      Serial.println();
      n2 = 0;
      goto letrasMaiusculas;//mudar para um endereço especificado
    }
    delay(50);
  }while (n3 != 16);//enquanto não for a letra q minúscula na tabela ASC

  Serial.println();
}

Saída gerada

12/01/2020

Programa 13 - Binario, hexadecimal e octal

Binario, hexadecimal e octal no Arduino

int valor1, valor2, valor3, valor4;

void setup() {
  valor1 = 25;
  valor2 = 13;

  Serial.begin(9600);

  Serial.print("Valor1: = ");
  Serial.print(valor1);

  Serial.print("\nValor2: = ");
  Serial.print(valor2);

  Serial.print("\n\nValor1 em binário = ");//exibe na tela
  Serial.print(valor1, BIN);// imprime o valor1 em binário

  Serial.print("\nValor2 em decimal: = ");
  Serial.print(valor2, DEC);

  Serial.print("\nValor1 em hexadecimal = ");
  Serial.print(valor1, HEX);

  Serial.print("\nValor2 em octal = ");
  Serial.print(valor2, OCT);
}

void loop() {

}

Saída gerada
















10/01/2020

Programa 12 - Soma e subtração no Arduino

Soma e subtração no Arduino

int valor1, valor2;
float soma, sub, divi, mult, resto, resFinal;

void setup() {
  valor1 = 25;
  valor2 = 13;

  soma = valor1 + valor2;
  sub = valor1 - valor2;
  divi = valor1 / valor2;
  mult = valor1 * valor2;
  resto = int (valor1) % int(valor2); // convertendo para inteiro

  resFinal = (soma * sub - divi + mult )/resto;

  Serial.begin(9600);
  Serial.print("Valor1: = ");//exibe na tela
  Serial.print(valor1);// imprime o valor1

  Serial.print("\nValor2: = ");
  Serial.print(valor2);

  Serial.print("\n\nSoma: = ");
  Serial.print(soma);

  Serial.print("\nSubtração: = ");
  Serial.print(sub);

  Serial.print("\nDivisaoão: = ");
  Serial.print(divi);

  Serial.print("\nMultiplicação: = ");
  Serial.print(mult);

  Serial.print("\nResto: = ");
  Serial.print(resto);

  Serial.print("\nResultado final: = ");
  Serial.print(resFinal);
}

void loop() {

}

Saída gerada


















09/01/2020

Programa 11

Contador usando Arduíno 
























//Portas analógicas
int pinos[9] = {12,11,10,9,8,7,6,5,4};
//int pinLed;

float minimo = 65;
float maximo = 1020;
float valorLDR;//guardar o valor nessa variavel
float luminosidade;

void setup() {
  // iniciando o pinLed
  for(int pinLed = 0; pinLed <= 8; pinLed++){
    pinMode(pinos[pinLed], OUTPUT);//portas digitais de saidas que irao ligar e desligar
  }

  pinMode(A0, INPUT);//porta analogica
}

void loop() {
  //
  valorLDR = analogRead(A0);//ler e guardar o valor nessa variavel
  luminosidade = ((valorLDR - minimo)/(maximo - minimo)) * 10;
  luminosidade = (luminosidade - 10) * -1 ;

  //acender a luminosidade de acordo com a faixa
  for(int pinLed = 0; pinLed <= 8; pinLed++){
    if(pinLed < luminosidade){
      digitalWrite(pinos[pinLed], HIGH);//ligar o led
    }else {
      digitalWrite(pinos[pinLed], LOW);//deligar o led
    }
  }
}

Programa 10

Usando Array no Arduíno com sensor de luz






















//Portas analógicas
int pinos[9] = {12,11,10,9,8,7,6,5,4};
//int pinLed;

float minimo = 65;
float maximo = 1020;
float valorLDR;//guardar o valor nessa variavel
float luminosidade;

void setup() {
  // iniciando o pinLed
  for(int pinLed = 0; pinLed <= 8; pinLed++){
    pinMode(pinos[pinLed], OUTPUT);//portas digitais de saidas que irao ligar e desligar
  }

  pinMode(A0, INPUT);//porta analogica
}

void loop() {
  //
  valorLDR = analogRead(A0);//ler e guardar o valor nessa variavel
  luminosidade = ((valorLDR - minimo)/(maximo - minimo)) * 10;
  luminosidade = (luminosidade - 10) * -1 ;

  //acender a luminosidade de acordo com a faixa
  for(int pinLed = 0; pinLed <= 8; pinLed++){
    if(pinLed < luminosidade){
      digitalWrite(pinos[pinLed], HIGH);//ligar o led
    }else {
      digitalWrite(pinos[pinLed], LOW);//deligar o led
    }
  }
}

Programa 9

Ligar leds no Arduíno usando Array





















int pinLed[9] = {12,11,10,9,8,7,6,5,4};
int numeroLed;
char digitado;

void setup() {
  int x;

  for(int x = 0; x <= 0; x++){
    pinMode(pinLed[x], OUTPUT);
  }

  Serial.begin(9600);
}

void loop() {
  digitado = ' ';
  numeroLed = 0;
 
  while (digitado != 'P'){//enquanto for menor que 8 acrescenta 1
    digitalWrite(pinLed[numeroLed], LOW);//apagou
   
    numeroLed += 1;
    if(numeroLed > 8){//se for maior
      numeroLed = 0;//reseta
    }
    digitalWrite(pinLed[numeroLed], HIGH);

  //verificar se tem alguma informação na porta serial
  if(Serial.available()){//se existir alguma informação na porta serial, se foi enviado informação para o arduino
    digitado = Serial.read();//lendo informação
    }

    delay(50);
  }

  delay(5000);
 
}



08/01/2020

Programa 8

Ascender leds com Arduino usando Array


























int pinLed[9] = {12,11,10,9,8,7,6,5,4};
int numeroLed;

void setup() {
  int x;

  for(int x = 0; x <= 0; x++){
    pinMode(pinLed[x], OUTPUT);
  }

}

void loop() {
  numeroLed = 0;

  while (numeroLed <= 8){
    digitalWrite(pinLed[numeroLed], HIGH);
    delay(50);

    numeroLed += 1;
  }

  numeroLed = 8;
  while(numeroLed >= 0){
    digitalWrite(pinLed[numeroLed], LOW);
    delay(500);

    numeroLed -= 1;
  }
}

Créditos para https://cursodearduino.net/

07/01/2020

Programa 7

Soma no Arduíno

int x, y, z, soma;

void setup() {
  // put your setup code here, to run once:
  //arduino começa a se comunicar com o computador
  Serial.begin(9600);//9600 velocidade

  x = 10;
  y = 20;
  z = 50;
  soma = x + y + z;
  Serial.print("Valor de x = ");
  Serial.print(x);

  Serial.print("\nValor de y = ");
  Serial.print(y);

  Serial.print("\nValor de z = ");
  Serial.print(z);

  Serial.print("\nSoma = ");
  Serial.print(soma);
}

void loop() {
  // put your main code here, to run repeatedly:

}

Créditos para https://cursodearduino.net/

Programa 6

Acender sequencial de Leds em Arduino


























int pinLed[9] = {12,11,10,9,8,7,6,5,4};//portas
int numeroLed;

void setup() {
  int i;
  //repetir 0 vezes
  for(i =0; i <= 8; i++){
    pinMode(pinLed[i], OUTPUT);//repete várias vezes
  }
}

void loop() {
  //ligar os leds ascendente
  for(numeroLed = 0; numeroLed <=8; numeroLed++){
    digitalWrite(pinLed[numeroLed], HIGH);
    delay(200);
  }

  //desliga decrescente
  for(numeroLed = 8; numeroLed>= 0; numeroLed--){
    digitalWrite(pinLed[numeroLed], LOW);//desliga
    delay(800);
  }

}

Créditos para https://cursodearduino.net/

Programa 5

Acender Led no Arduino com botão de pressão

















int pinVermelho = 10;
int pinAmarelo = 9;
int pinVerde = 8;
int pinBotao = 7;
int pinPedestreVermelho = 3;
int pinPedestreVerde = 2;

int faseSemaforo;

int estadoBotao;
int estadoAnteriorBotao;

int tempoPisca;
int estadoPisca;

void setup() {
  // put your setup code here, to run once:

  pinMode(pinVerde, OUTPUT);
  pinMode(pinAmarelo, OUTPUT);
  pinMode(pinVermelho, OUTPUT);
  pinMode(pinBotao, INPUT);
  pinMode(pinPedestreVerde, OUTPUT);
  pinMode(pinPedestreVermelho, OUTPUT);

  faseSemaforo = 1;

  estadoAnteriorBotao = digitalRead(pinBotao);

  tempoPisca = 0;
  estadoPisca = HIGH;
}

void loop() {
  // put your main code here, to run repeatedly:

  estadoBotao = digitalRead(pinBotao);

  if ((estadoBotao == LOW) && (estadoAnteriorBotao == HIGH)) {
   
     if (faseSemaforo < 4) {
       faseSemaforo = faseSemaforo + 1;
     } else {
       faseSemaforo = 1;
     }
  }

  estadoAnteriorBotao = estadoBotao;

  if (faseSemaforo == 1) {    //SEMAFORO ABERTO (VERDE)
     digitalWrite(pinVerde, HIGH);
     digitalWrite(pinAmarelo, LOW);
     digitalWrite(pinVermelho, LOW);

     digitalWrite(pinPedestreVerde, LOW);
     digitalWrite(pinPedestreVermelho, HIGH);   
  }

  if (faseSemaforo == 2) {   //SEMAFORO AMARELO
     digitalWrite(pinVerde, LOW);
     digitalWrite(pinAmarelo, HIGH);
     digitalWrite(pinVermelho, LOW);

     digitalWrite(pinPedestreVerde, LOW);
     digitalWrite(pinPedestreVermelho, HIGH);     
  }

  if (faseSemaforo == 3) {   //SEMAFORO FECHADO (VERMELHO)
     digitalWrite(pinVerde, LOW);
     digitalWrite(pinAmarelo, LOW);
     digitalWrite(pinVermelho, HIGH);
   
     digitalWrite(pinPedestreVerde, HIGH);
     digitalWrite(pinPedestreVermelho, LOW);     
  }

  if (faseSemaforo == 4) {   //SEMAFORO PEDESTRE PISCANDO
     digitalWrite(pinVerde, LOW);
     digitalWrite(pinAmarelo, LOW);
     digitalWrite(pinVermelho, HIGH);

     tempoPisca = tempoPisca + 1;
     if (tempoPisca == 400) {
        estadoPisca = !estadoPisca;
        tempoPisca = 0;
     }
   
     digitalWrite(pinPedestreVerde, LOW);
     digitalWrite(pinPedestreVermelho, estadoPisca);     
   
  }

  delay(100);
}

Créditos para https://cursodearduino.net/

Programa 4

Ascender Led no Arduino com botão de pressão

void setup() {

  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(7, INPUT);

}

void loop() {

  int estadoBotao;
  estadoBotao = digitalRead(7);//ao apertar o botão irá controlar os estados do led

  digitalWrite(10, estadoBotao);
  digitalWrite(9, estadoBotao);
}

Créditos para https://cursodearduino.net/

Programa 3

Acender Led em Arduino com intervalo de tempo

void setup() {

  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);

}

void loop() {

  int intervaloPisca;
  intervaloPisca = 700;

  digitalWrite(10, HIGH);
  digitalWrite(9, LOW);
  delay(intervaloPisca);//500 milesegundos

  digitalWrite(10, LOW);
  digitalWrite(9, HIGH);
  delay(intervaloPisca);
}

Créditos para https://cursodearduino.net/

Programa 2

Acender Led com intervalo de tempo em Arduino

void setup() {
  // put your setup code here, to run once:
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  int intervaloPisca;
  intervaloPisca = 700;

  digitalWrite(10, HIGH);
  digitalWrite(9, LOW);
  delay(intervaloPisca);//500 milesegundos

  digitalWrite(10, LOW);
  digitalWrite(9, HIGH);
  delay(intervaloPisca);
}

Créditos para https://cursodearduino.net/

02/01/2020

Programa 1 - Ligar led

Acender Led no arduino

void setup() {
  // put your setup code here, to run once:
  pinMode(10, OUTPUT);//ligar
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(10, HIGH);//liga
  delay(1000);//a cada 1 seg
  digitalWrite(10, LOW);//desliga
  delay(1000);
}

Créditos para  https://cursodearduino.net/