segunda-feira, 4 de março de 2024

Índice

 



  










  



Monitor Serial

 

Leitura de entrada Digital (Botão) - Desvio condicional (if) - Laço de repetição (for)

 

Leitura de pino digital - digitalRead()

·        Embarcados - Usando os pinos digitais do Arduino

·        Portal Vida de Silício - Arduino – Entradas e saídas digitais – Pinos digitais

·        Arduino.cc - digitalRead()

           Arduino.cc - Foundations - Digital Pins

MultilógicaShop - função digitalRead()


IF - IF ELSE

Arduino.cc - if/else

Multilógica-Shop - if/else

DEVMEDIA - if/else Operador ternário


FOR

arduino.cc - for


Resistores pull-up e pull-donw e seu uso em botões

Robot Feliciano - Botões e Resistores Pull-down e Pull-up

Laboratório de Garagem - Pull up e Pull down no Arduino

Laboratório de Garagem - Para que servem resistores Pull-Up/Pull-Down e como implementá-losAuto Core blog - Resistores Pull-Up e Pull-Down, como funcionam?

YouTube - Bit a Bit - Arduino - Usando botão e (resistores pull-up)

YouTube - Marlon Nardi - Universo Arduino #2 | Entradas Digitais Pull-Up Pull-Down Botões com Arduino

Youtube - GV ensino - Arduino: Botão e Resistor de Pull Up Interno



  

Exemplo







/*
 * Botao_0_1_0.ino - Botão
 *
 * Liga e desliga um diodo emissor de luz (LED) conectado ao pino digital 13,
 * ao pressionar um botão conectado ao pino 2.
 * 
 * O circuito:
 * - LED conectado do pino 13 ao aterramento por meio de resistor de 300 ohm
 * - botão de pressão conectado ao pino 2 de + 5V
 * - resistor de 10K conectado ao pino 2 A GND
 * 
 * - Nota: na maioria dos Arduinos já existe um LED na placa ligado ao pino 13.
 * 
 * Versão:
 * 0.0.0 -> IDE ARDUINO - Exemplos\02.Digital\Button   
 *          Criado em 2005 by DojoDave <http://www.0j0.org> 
 *          Modificado em 30/08/2011 por Tom Igoe
 *          This example code is in the public domain.
 *          https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button
 * 0.1.0 -> Exclusão da variável glogal estado e resumo da leitura ao teste "if"         
 *          
 * Data: 09/09/2021         
 * Luiz Oscar Ruschel Pilger
*/

// apelidos
#define pinoBotao 2   // pino para o botão
#define pinoLed  13   // pino para o led

void setup() {
  pinMode(pinoLed, OUTPUT);   // inicializa o pino do Led como saída
  pinMode(pinoBotao, INPUT);  // incializa o pino do botão como entrada
}

void loop() {
  // Verifica se o botão está pressionado.
  // Na configuração Pull Donw o estado é HIGH
  if (digitalRead(pinoBotao) == HIGH) {
    digitalWrite(pinoLed, HIGH); // Coloca a saída em nível alto para ligar o led
  } 
else {
    digitalWrite(pinoLed, LOW);  // Coloca a saída em nivel baixo para desligar o led
  }
}

  

Arduino


 


Comandos básicos de programação

Comandos de ARDUINO


A IDE do ARDUINO

Transferindo para a placa ARDUINO


Os primeiros passos - BLINK

Sequenciamento - O semáforo

Circuitar - Funções

Funções, como criar, como usar

Leitura de entrada Digital (Botão) - Desvio condicional (if) - Laço de repetição (for)


Acionamento de carga


Conversor A/D




  



ESP32 - Programação Multi-Core

 

·        Tarefas “TASK”

·        Funções

·        Exemplos

 

Material de consulta (roteiro de estudo):

·        Random Nerd Tutorial - How to use ESP32 Dual Core with Arduino IDE

·        Embarcados - ESP32 – Lidando com Multiprocessamento – Parte I

·        Embarcados - ESP32 – Lidando com Multiprocessamento – Parte II

·        Fernando K - ESP32 com Arduino IDE - Programação Multi-Core



  



ESP32 – entradas Touch

 

·        Compreender o funcionamento das entradas Touch

·        Utilizar entrada touch em vez de Entrada GPIO

·        Exemplos

 

Fonte de consulta sobre a EEPROM do ESP32:

·        Fernando K - ESP32 com Touch Button Capacitivo

·        Random Nerd Tuturials - ESP32 Capacitive Touch Sensor Pins with Arduino IDE



  



ESP32 – EEPROM

 

·        EERPOM conceito funcionamento no ESP32

·        Biblioteca EEPROM.h

·        Funções e manipulação de dados

·        Exemplos

 

Fonte de consulta sobre a EEPROM do ESP32:

·        Portal Vida de Silício - Memória não Volátil EEPROM do ESP8266

·        Random Nerd Tuturials - Memória Flash ESP32 - Armazene Dados Permanentes (Gravação e Leitura)

·        Pija Education - EEPROM in Arduino and ESP (ESP8266 and ESP32)

·        AranaCorp - Using the EEPROM with the ESP32



  



ESP32 – Interrupção

 

·        Compreender o funcionamento Interrupções

·        Utilizar uma interrupção externa

·        Exemplos

 

Fonte de consulta sobre a EEPROM do ESP32:

·        Arduino.cc - attachInterrupt()

·        Gammon Forum - Interrupts

·        Fernando K - Os profissionais sabem disso: Interrupt ISR   



  



 

 g



  




ESP32 – Explorando o GPIO

 




·        Integrando a plataforma ESP32 na IDE Arduino

·        Visão geral sobre as opções disponíveis de placas

·        Explorando a “pinagem”

·        GPIO – Entradas e saídas digitais

 

Material de consulta (roteiro de estudo):

·        Instalando ESP32 no Arduino IDE: Método fácil

·        Getting Started with the ESP32 Development Board

·        ESP32 Pinout Reference: Which GPIO pins should you use?

·        ESP32: Detalhes internos e pinagem

·        ESP32 Digital Inputs and Digital Outputs (Arduino IDE)





domingo, 19 de janeiro de 2020

ESP32 - MQTT




Arduino e Cia - Enviando mensagens MQTT com módulo ESP32






Instituto NCB - Enviando e recebendo dados via MQTT com o ESP32 (MIC373)








  


Youtube


Internet das Coisas - Curso de MQTT - Parte 1 - Internet e Coisas #51

Fernando K - Introdução ao protocolo MQTT com Ubidots – ESP32

Microgenios - HTTP ou MQTT? Descubra as diferenças para Projetos IOT

Microgenius - Aula19 - Trabalhando com Mqtt para IoT com ESP32 no geniot PRO Industrial (P2)




  

11ª Mostra Eletrônica - 2019 - II


       


  

Os participantes














11ª Mostra Eletrônica - 2019 - II - Galeria de fotos

segunda-feira, 1 de julho de 2019

ESP32 - Entradas Analógicas



A leitura e conversão de sinais analógicos é semelhante a arquitetura Arduino.

A base é a função analogRead() - Arduino.cc - analogRead()

Resolução - Arduino.cc - analogReadResolution()


Tutoriais para leitura de sinais analógicos


Random Nerd Tutorials - ESP32 ADC – Read Analog Values with Arduino IDE

Espressif - Analog to Digital Converter

GitHub- ESP32-ADC-Accuracy-Improvement-function/ESP32_Read_Voltage_Simple.ino

Embarcados - ESP32 – Analisando e corrigindo o ADC interno

Fernando K - Você não sabia? Ajuste de ADC do ESP32

Portal Vida de Silicio - LENDO SENSORES ANALÓGICOS EM DEEP SLEEP COM ULP - ESP32

YouTube - Crescer Indústria de Automação - Entrada Analógica do ESP32 |Como filtrar e linearizar

Fóruns com informações sobre erros em leituras analógicas


GitHub - espressif / arduino-esp32 - Inconsistent values when using "analogRead()" #92

GitHub - espressif / arduino-esp32 - the analogRead seems doesn't work #683

Expressif - ESP32 ADC Non-linear Issues - How do I fix / change Attenuation or width?



Exemplo com LM35 

  









/* arquivo: esp32AnalogReadLm35
   Plataforma: ESP 32
   Leitura de entradas analógicas

   GPIO 34 (Analog ADC1_CH6)

   LM35DZ - 10mV/ºC

   Média com leituras

   Luiz Oscar Ruschel Pilger - Atualição: 25/06/2020
*/
// Constantes
const int sensorPino = 34;
const int leituras = 50;
// Variáveis
long sensorValor;
float temperatura;

void setup() {
  Serial.begin(115200);
  // configurações do A/D
  analogReadResolution ( 12 ); // resolução de 12 bits
  //analogSetAttenuation (ADC_0db);  // Para todos os pinos
  // Atenuação: ADC_0db, ADC_2_5db, ADC_6db, ADC_11db
  // 0dB: 100 - 950mV # 2.5dB: 100 - 1250mV # 6dB: 150 - 1750mV # 11dB: 150 - 2450mV
  analogSetPinAttenuation (sensorPino, ADC_6db); // Atenuação de 6db no pino sensorPino
  //analogSetCycles(16); // define o número de ciclos por amostra. O padrão é 8. Intervalo: 1 a 255.
  //analogSetSamples(1); // define o número de amostras no intervalo. O padrão é 1 amostra. Tem um efeito de aumentar a sensibilidade
}

void loop() {
  // Leitura do sensor
  sensorValor = 0;  // zera as leituras
  for (int i = 0; i < leituras; i++) {
    sensorValor = sensorValor + analogRead(sensorPino); // acumula as leituras
    delay(1); // tempo para o conversor
  }
  sensorValor = sensorValor / leituras; // calcula a média
  Serial.print(sensorValor);  // imprime a media da conversão
  float millivolts = ((float)sensorValor / 4095) * 3300; // Calcula o valor obtido do conversor para mV
  Serial.print(" -> ");
  Serial.print(millivolts); // imprime o valor em mV
  float temperatura = millivolts / 10;  // calucla a temperatura
  Serial.print("mV -> Temperatura = ");
  Serial.print(temperatura);  // imprime a temperatura
  Serial.println("ºC");
  delay(1000);  // tempo entre cada medida
}