Programação Para Arduino – Aula 03

Na primeira aula veremos:

  • Contantes
    1. INPUT;
    2. OUTPUT;
    3. INPUT_PULLUP;
    4. LED_BUILTIN;
    5. HIGH;
    6. LOW;
    7. true;
    8. false;

Assista a vídeo aula:

Constantes

Constantes são expressões pré-definidas na linguagem Arduino. Eles são usados ​​para fazer os programas mais fáceis de ler. Classificamos constantes em grupos:

Definindo níveis lógicos: True e false (booleano Constantes)

Há duas constantes usadas para representar verdade e falsidade na linguagem Arduino: treu e false.

False

falsa é o mais fácil dos dois para definir. falso é definido como 0 (zero).

Treu

verdade é frequentemente dito ser definida como 1, o que é correto, mas verdadeiro tem uma definição mais ampla. Qualquer inteiro que é diferente de zero é verdadeiro, em um sentido booleano. Então -1, 2 e -200 são todos definido como verdadeiro, também, em um sentido booleano.

Note-se que os verdadeiros e falsos constantes são digitados em letras minúsculas ao contrário de HIGH, LOW, INPUT, e OUTPUT.

Definindo níveis Pin: HIGH  e LOW

Ao ler ou escrever em um pino digital há apenas dois valores possíveis de um pino pode tomar / ser-set-a: HIGH e LOW.

HIGH

O significado de HIGH (em referência a um pino) é um pouco diferente, dependendo se um pino é definido como uma INPUT ou OUTPUT. Quando um pino é configurado como uma INPUT com pinMode(), e ler com digitalRead (), o Arduino (Atmega) irá relatar HIGH se:

  • uma tensão superior a 3 volts está presente no pino de placas (5V);
  • uma tensão superior a 2 volts está presente no pino (placas de 3.3V);

Um pino também pode ser configurada como uma INPUT com pinMode () e, posteriormente, fez HIGH comdigitalWrite (). Isso permitirá que os internos 20K resistências pullup, que vai puxar para cima o pino de entrada para uma HIGH leitura a menos que seja puxado LOW por um circuito externo. Isto é como INPUT_PULLUP funciona e é descrito abaixo em mais detalhe.

Quando um pino é configurado para OUTPUT com pinMode (), e definido para HIGH com digitalWrite (), o pino está em:

  • 5 volts (5V placas);
  • 3,3 volts (placas 3.3V);

Nesse estado ele pode fonte atual, por exemplo, acender um LED que está conectado através de um resistor em série para o solo.

LOW

O significado de LOW também tem um significado diferente, dependendo se um pino é definido como INPUT ou OUTPUT. Quando um pino é configurado como uma INPUT com pinMode (), e ler com digitalRead (), o Arduino (Atmega) irá relatar LOW se:

  • uma tensão inferior a 3 volts está presente no pino de placas (5V);
  • uma tensão inferior a 2 volts está presente no pino (placas de 3.3V);

Quando um pino é configurado para OUTPUT com pinMode (), e definida como LOW com digitalWrite (), o pino é a 0 volts (tanto 5V e 3.3V placas). Nesse estado ele pode afundar atual, por exemplo, acender um LED que está conectado através de um resistor em série para +5 volts (ou +3,3 volts).

Definindo modos de pinos digitais: INPUT, INPUT_PULLUP, e OUTPUT

Pinos digitais pode ser usado como ENTRADA, INPUT_PULLUP, ou OUTPUT. Mudando um pino com pinMode ()muda o comportamento elétrico do pino.

Pinos configurada como entrada

Arduino (Atmega) configurados como pinos INPUT com pinMode () estão a ser dito em um estado de alta impedância. Pinos configurados como INPUT tornar extremamente pequenas exigências do circuito de amostragem que são equivalentes, a uma resistência em série de 100 Megohms na frente do pino. Isto torna-os úteis para a leitura de um sensor.

Se você tiver seu pino configurado como uma OUTPUT, e está lendo um interruptor, quando a chave está no estado aberto o pino de entrada será “flutuante”, resultando em resultados imprevisíveis. Para garantir uma leitura adequada quando a chave está aberta, um pull-up ou pull-down resistor deve ser utilizado. O objectivo da presente resistor é para puxar o pino para um estado conhecido, quando o interruptor é aberto. Uma resistência de 10 K ohms é normalmente escolhido, uma vez que é um valor suficientemente baixo para impedir de forma fiável uma entrada de flutuação, e ao mesmo tempo um valor suficientemente elevado para não não desenhar demasiada corrente quando o interruptor está fechado. Veja o Digital Leia Serial tutorial para mais informações.

Se um resistor pull-down é usado, o pino de entrada será LOW quando o interruptor é aberto e ALTO quando o interruptor está fechado.

Se um resistor de pull-up é usada, o pino de entrada será HIGH quando o interruptor é aberto e LOW quando o interruptor está fechado.

Pinos configurados como INPUT_PULLUP

O microcontrolador Atmega no Arduino tem resistores pull-up internas (resistores que se conectam ao poder internamente) que você pode acessar. Se você preferir usar estes em vez de resistores pull-up externa, você pode usar o INPUT_PULLUP argumento em pinMode ().

Veja a entrada Pullup Serial tutorial para um exemplo disso em uso.

Pinos configurados como entradas, quer com ENTRADA ou INPUT_PULLUP podem ser danificados ou destruídos, se estiverem ligados a tensões abaixo do solo (tensões negativas) ou acima do trilho de alimentação positiva (5V ou 3V).

Pinos configurados como saídas

Pinos configurados como OUTPUT com pinMode () estão a ser dito em um estado de baixa impedância. Isto significa que eles podem fornecer uma quantidade substancial de corrente para outros circuitos. Atmega pinos podem fonte (fornecer corrente) ou afundar (absorver atual) até 40 mA (miliamperes) de corrente para outros dispositivos / circuitos.Isto torna-os úteis para alimentar LEDs porque os LEDs utilizam tipicamente inferior a 40 mA. Cargas maiores que 40 mA (por exemplo, motores) exigirá um transistor ou outro circuito de interface.

Pinos configurados como saídas podem ser danificados ou destruídos, se estiverem ligados quer ao solo ou trilhos de alimentação positivas.

Definindo built-ins: LED_BUILTIN

A maioria das placas Arduino tem um pino ligado a um diodo emissor de luz de bordo em série com uma resistência. A constante LED_BUILTIN é o número do pino para que o LED de bordo está ligado. A maioria das placas têm este LED conectado ao pino digital 13.

imagem desenvolvido utilizando Fritzing. Para obter mais exemplos de circuito, consulte a página do projeto Fritzing
Imagem desenvolvido utilizando Fritzing. Para obter mais exemplos de circuito, consulte a página do projeto Fritzing
boolean seVerdadeiro = false; 
boolean se = true; 

int led1 = 2, led2 = 4, led3, botao = 5;

void setup() {
  //Colocar o seu código de configuração aqui, para executar uma vez:
  pinMode(led1, OUTPUT);
  pinMode(led2, INPUT);
  pinMode(botao, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // Colocar o seu código principal aqui , para executar repetidamente:
  digitalWrite(led1, digitalRead(botao));
  //digitalRead(led2);
  //digitalRead(led1);

}

Fonte: arduino.cc

2 Comentários

  1. cara obg deu certo so queria q vc min ajudasse com outra coisa
    gostaria de saber o que e o erro q tm nesse programa
    pq quando eu compilo da erro na parte

    “IRrecv irrecv(RECV_PIN);”

    int RECV_PIN = 11;

    IRrecv irrecv(RECV_PIN);

    decode_results results;

    void setup(){

    Serial.begin(9600);

    irrecv.enableIRIn();
    }

    void loop(){

    if (irrecv.decode(&results)) {

    Serial.println(results.value,HEX);
    irrecv.resume();
    }

    }

    • Caro Cleiton,

      Primeiro verifica se você importou a biblioteca IRremote, se não, o link é este:
      >> IRremote < <

      Os códigos corretos estão ai:

      #include <IRremote.h>
      
      int RECV_PIN = 11;
      IRrecv irrecv(RECV_PIN);
      decode_results results;
      
      void setup() {
        Serial.begin(9600);
        irrecv.enableIRIn();
      }
      
      void loop() {
        if (irrecv.decode(&results)) {
          Serial.println(results.value, HEX);
          irrecv.resume();
        }
      }
      

Deixe uma resposta para cleiton Cancelar resposta

Seu e-mail não será publicado.


*