quinta-feira, 10 de fevereiro de 2022

# S4A - SCRATCH FOR ARDUINO E PONTE H

Primeiro vídeo, ou seja, a introdução ao processo de como conectar motores DC em um Arduino e realizar a sua programação utilizando o Scratch For Arduino (S4A).


O conteúdo será dividido em mais 2 vídeos:

  • A montagem física dos componentes
    • Ponte H
    • Arduino
    • Motores
    • Alimentação

  • A programação
    • Download e Instalação do S4A
    • Configuração do Arduino
    • Programação utilizando blocos
Até o próximo vídeo.

terça-feira, 19 de maio de 2020

# SENSOR DE UMIDADE DE SOLO

O sensor é capaz de ler a resistência do solo em relação as hastes, quando o solo estiver seco, a resistência do solo aumentara a resistência de passagem de corrente ente as hastes. Já quando estiver úmido, a resistência do solo diminuirá a resistência de passagem de corrente. Esses valores podem ser representados por sinais digitais lógicos, 1 = a seco e 0 = a molhado. Ou ainda poderíamos utilizar a porta analógica definindo um valor inteiro alto para o solo seco e um valor inteiro baixo para o solo úmido. No exemplo, vou utilizar a porta analógica A0, o monitor serial para expressar valores analógicos de 0 até 1023.

Especificação:
  • Tensão de Operação: 3,3-5v
  • Sensibilidade ajustável via potenciômetro
  • Saída Digital TTL (D0) e Analógica(A0)
  • Led indicador de detecção de umidade
  • Dimensões PCB: 30mm x 16mm
  • Dimensões Sonda: 60mm x 21mm
  • Comprimento Cabo: 20 cm

     










    Hastes


     Cabos dupont

    Placa comparadora 

    A placa comparadora é um pequeno módulo, composto por um chip comparador LM393, responsável pelas leituras do sensor.





     Montagem circuito (física)



    Programação básica do sensor


    Código fonte:
     


    Definição de uma constante associada a porta analógica A0 do Arduino Uno, com o objetivo de receber dados da placa comparadora do sensor de umidade de solo.

    Declaração de um variável denominada leitura, com a função armazenar o valor gerado pela placa controladora, de acordo com a umidade do solo, detectado pelo sensor. 

    Na sessão setup(), a configuração da porta analógica A0 como entrada de dados (INPUT) e inicializamos a porta Serial do Arduino. 

    Já em loop(), é realizado a leitura na porta analógica, seus dados são armazenados na variável leitura e depois impressa no monitor serial.

quarta-feira, 1 de abril de 2020

# SENSOR DE ÁGUA NO ARDUINO

O sensor é projetado para detectar a presença de água, pode ser utilizado para identificar a presença de chuva, níveis de água e até vazamento de líquidos. O componente é composto de três partes: conectores de energia e comunicação, um resistor de 1MΩ e condutores responsáveis pela detecção da água.
Quando a água entra em contato com os condutores, acaba diminuindo o fluxo de tensão dos mesmos, sendo assim o dispositivo é capaz d avaliar o nível de água que cobrem os condutores e chegar ao um valor de tamanho. 
O sensor possui baixo consumo de energia e uma alta sensibilidade, sendo compatível com controladores Arduino UNO, Mega 2560 e outros.
Especificações técnicas  
  • Modelo: K-0135 
  • Tensão de operação: DC5V 
  • Tipo de sensor: Analógico 
  • Temperatura: 10ºC – 30ºC 
  • Umidade de operação: 10% ~ 90% sem condensação
  • Peso: 3g 
  • Dimensões: 65mm x 20mm x 8mm
Montagem do circuito

O pino "S" de sinal foi conectado na porta analógica "A0", o pino "+" positivo é ligado no pino de 5V (VCC) e o pino "-" negativo conectado no pino "GND" do Arduino.


Programação no Arduino IDE

Após a montagem do circuito eletrônico, vamos a programação do Arduino e do sensor de Água e a utilização do monitor serial para exibir as leituras, como mostra o vídeo abaixo:


Código Fonte


Concluindo assim a utilização de um sensor de água.

domingo, 29 de março de 2020

# MÓDULO DHT11 NO ARDUINO


O DHT11 é um sensor de umidade e temperatura integrado em um só módulo, o sensor utiliza um termistor para medir a temperatura e um sensor capacitivo para medir a umidade do ambiente, possuí um controlador de 8 bits que converte o sinal de temperatura e umidade dos sensores e um sinal serial e envia ao Arduino através do pino de dados (Data). Pode medir temperaturas entre 0 a 50º Celsius com uma precisão de 2 graus, e umidade entre 20 a 90 % com uma precisão de 5%.


Pinos do Sensor



  • Pino 1: Saída Data;
  • Pino 2: Alimentação - 3,0 a 5,0 VDC;
  • Pino 3: GND – 0V.

Datasheet: https://s3-sa-east-1.amazonaws.com/multilogica-files/datasheets/DHT11.pdf


Montagem do esquema eletrônico







O pino 1, responsável pela leitura de dados gerados pelo módulo, pode ser plugado em uma porta digital do Arduino, sendo que no exemplo utilizei a porta digital 8, no esquema, representado pelo jumper de cor azul, já o pino 2, responsável pela alimentação do módulo, é representado pelo jumper vermelho, deve ser conectado na alimentação de 5V (VCC) da placa. O pino 3, representado pelo jumper preto, deve ser conectado ao gnd do Arduino.


Vídeo da montagem:



Programação no Arduino IDE 

Após a montagem do circuito eletrônico, vamos a programação do Arduino e do sensor DHT11 e a utilização do monitor serial para exibir as leituras, como mostra o vídeo abaixo:




A biblioteca utilizada foi a DHT Sensor Library - https://github.com/adafruit/DHT-sensor-library


Código fonte




Neste exemplo, utilizei o Sensor DHT11 para monitorar a umidade do ar e a temperatura.

quarta-feira, 12 de fevereiro de 2020

# RESISTOR DEPENDENTE DE LUZ - LDR

No terceiro post sobre Arduino, abordo a utilização de um LDR, um resistor dependente da luminosidade do ambiente onde ele encontra-se, sendo assim ele varia sua resistência de acordo com a intensidade da luz. Neste exemplo de projeto, vamos utilizar esse componente eletrônico com o objetivo de imprimir o valor gerado pelo elemento, e exibi-lo no monitor serial do Arduino IDE.


A montagem do circuito elétrico é bem simples, contamos um um resistor de 330 ohms (laranja, laranja, marrom e dourado), um ldr, matriz de contatos, Arduino e alguns jumpers (m/m). Neste caso eu utilizei um aplicativo para gerar o circuito.

Vídeo da montagem:

Código do sketch:

 Conclusões finais:

 Com a utilização do LDR podemos realizar várias atividades, como por exemplo, ligar uma lâmpada quando cair a luminosidade do ambiente, como funciona os postes de luz de vias públicas.

terça-feira, 7 de janeiro de 2020

# SENSOR ULTRASSÔNICO NO ARDUINO



Objetivo: controlar um módulo sensor ultrassônico HC-SR04 com o Arduino UNO
Como funciona o sensor: o dispositivo é baseado no envio (trigger) e recebimento de ondas ultrassônicas de 40kHz, imperceptível ao ouvido humano, com esses dados é possível calcular a distância de objetos em relação ao sensor, para isso a placa utiliza como referencia o tempo em que essa onda leva para atingir um determinado obstáculo. O sensor possui uma margem de erro de 3mm, podendo operar em distâncias de 2cm até 400cm. 

O pino TRIGGER recebe um pulso de 5V por 10us(micro segundos - tempo de largura de pulso), inicializando o módulo, após isso são enviado 8 ciclos frequência específica do sensor, quando sensor detecta o retorno desses ciclos, passa o pino ECHO para "HIGH", sendo assim, o tempo em o echo ficar ligado, será a distância do objeto.

  • Gnd -  0V ground (terra)
  • Echo - pulso de saída (OUTPUT)
  • Trigger - pulso de entrada (INPUT)
  • Vcc - 5V alimentação
Datasheet: datasheet

Para o exemplo, vou utilizar a biblioteca Ultrasonic.h, mas pode ser realizado sem o auxilio da mesma, sendo que o suporte a funções específicas, facilitam a implementação de projetos mais simples, que é o meu caso. Abaixo demonstro uma das várias maneiras de adicionar bibliotecas ao Arduino IDE.

 

Para exemplificar, utilizo o Fritzing, é uma ferramenta de código aberto utilizada design de hardwares eletrônicos, que me facilitou muito o aprendizado do Arduino, existe também opções online para esse tipo de tarefa. A imagem abaixo permite uma visualização básica de sua utilização.


Para montar o circuito, utilizo os seguintes componentes:
  • Placa Arduino Uno
  • Sensor Ultrassônico HC-SR04
  • Jumpers M/M
  • Matriz de contatos
 

 Código básico:




1. Responsável pela inclusão da biblioteca Ultrasonic.h;
3. Instância um objeto com características de um sensor de distância, defino um nome e os respectivos pinos do Arduino;
6. Função setup(), configurações do projeto;
7. Configura o monitor serial da IDE;
12. Função loop(), ficará repetindo até que acabe a energia;
13. Definimos uma variável inteira, que recebera a distância em centímetros;
15. Imprime o valor no monitor serial.



quarta-feira, 4 de dezembro de 2019

# COMO LIGAR UM LED NO ARDUINO UNO

Robótica
substantivo feminino
 - ciência e técnica da concepção, construção e utilização de robôs.
 
O Arduino (https://www.arduino.cc/) é um hardware Livre, que proporciona a criação de projetos desde de brinquedos, criação de robôs e até processos de automação residenciais e industriais complexos, utilizando uma linguagem de programação semelhante (ou é a própria) C/C++.
O meu objetivo é compartilhar conhecimento, além de trocar experiências e aprender, esse sim é o meu maior objetivo neste canal com o o Mundo da internet.

Neste primeiro exemplo, vou utilizar o famoso  "Hello World", ou seja, o "Olá Mundo" da programação de computadores, sabendo que no mundo do Arduino, vamos trabalhar com vários outros meios de comunicação, como por exemplo, um LED (Diodo Emissor de Luz), isso, vamos trabalhar com componentes eletrônicos também. Então o nosso primeiro exemplo prático, será ligar e desligar um led da placa Arduino Uno, e ao mesmo tempo vamos descobrindo os componentes de hardware da placa.


No Uno, podemos utilizar o Led 13 (Led_builtin), pois ele é está vinculado ao pino digital 13 da placa controladora, ele será o configurado como um meio de saída, ou seja, ele emitirá luz em determinado espaço de tempo.
Para conectar o Arduino ao computador devemos utilizar o cabo USB que normalmente vem junto com a placa, baixar o aplicativo Arduino IDE e realizar a devidas configurações que o seu sistema operacional necessitar. 


Vamos ao exemplo: abrir o aplicativo Arduino IDE e digitar o seguinte código.

void setup() {
    pinMode(13, OUTPUT);
}

void loop() {
    digitalWrite(13, HIGH);
    delay(1000);
    
    digitalWrite(13, LOW);
    delay(1000);

}

Uma breve descrição do código, para que possamos entender a mecânica do procedimento, a função "void setup" determina como as coisas vão funcionar, ela é executada quando ligamos ou reiniciamos a placa, no caso da linha "pinMode" é a instrução responsável por definir se o pino em questão enviará ou receberá uma tensão elétrica. No exemplo, o número 13 representa led interno da placa e "OUTPUT" define que o mesmo será de saída, ou seja, receberá uma tensão de 5V para emitir luz.

Já a função "void loop" será executada até que a placa seja desligada ou a sua fonte de energia acabe. A função "digitalWrite" define se um pino está ou mão recebendo energia, sendo representado pelas palavras "HIGH" e "LOW", sendo a primeira "ALTA - energizado e a segunda BAIXA - sem energia".  No caso a função "delay(1000)" é um temporizador que define quando tempo um determinado comando ou ação deverá ser executado ou aguardado, neste caso o valor está em milissegundos, ou seja, 1 segundo equivale a 1000 milissegundos.

Para concluir então, o led ficará ligado por um segundo e depois desligará, aguardará por um segundo e ligará novamente, até que a placa seja desligada.



Agora basta salvar o sketch e carregar o código para a memória da placa.

Testes: 


Uma alternativa para que não se adapta muito com códigos, é o Ardublock - linguagem de programação gráfica para Arduino, neste caso é necessário baixar o pacote ardublock-all.jar e agregá-lo ao Arduino IDE. Após a configuração do recurso, basta ir até o menu Ferramentas\ArduBlock:


ArduBlock

Processo de download do ArduBlockTool (ardublock-all.jar) e configuração no Arduino IDE.


Exemplo01: piscar o Led_buildin do Arduino Uno utilizando o Ardublock.

Espero que a publicação tenha de alguma forma, ajudado ou até mesmo incentivado a utilização dessa tecnologia, também é uma forma que eu achei de mostrar que eu estou aprendendo. Espero receber dicas e informações para melhorar meus conhecimentos.