Sensor dosador de sabão com arduino

Ola pessoal neste projeto irei mostrar a montagem básica e programação de um sensor dosador de sabão usando Arduíno como plataforma de processamento.
 Esse é um projeto bem simples e de baixo custo para automatizar o uso de sabão na sua casa, pode ser usado tanto para lavagens das mãos quanto na pia para louça, bastando apenas aproxima as mãos ou a espoja para que o sabão. O projeto e ainda um protótipo, o que o torna bem rustico e arcaico, enfim o mais importante e o funcionamento, vamos ao tutorial.







Para isto vamos utilizar um;
_ 1x Arduíno
_1x sensor ultrassônico .
_1x bomba d'água submersa de 5v.
_1 mini protoboard .
e fios jumpers.



Utilizamos uma protoboard pois o Arduíno só possui uma saída de  5v.
Conexões;
-Conecte o fio 5V do Arduíno na entrada VCC (+) do sensor ultrassônico e em um dos fios da bomba
-Conecte o fio GND do Arduíno na entrada GND do sensor ultrassônico e em um dos fios da bomba.
-Conecte o fio D13 do Arduino no fio que restou da bomba...
-Conecte o fio D7 do Arduino na entrada echo do sensor ultrassonico.
-Conecte o fio D8 do Arduino na entrada trig do sensor ultrassonico.

Coloque a bomba submersa em vasilhame ou copo com sabão liquido de preferencia um pouco diluído, coloque uma borrachinha na bomba para passagem do sabão conectada a uma haste, nesta mesma haste,na base superior coloque o sensor ultrassônico. 

Copie o código fonte abaixo para seu Arduíno.



//Inicio do código 

#define trig 8 //ligue o trig no pino 7
#define echo 7 //ligue o echo no pino 6
 int bomba = 13;
void setup() {
  Serial.begin (9600);
  pinMode(trig, OUTPUT); //Definição de pino sensor
  pinMode(echo, INPUT);  //Definição de pino sensor
  pinMode(bomba,OUTPUT); //Definição de pino bomba
}

void loop() {
  long duracao, distancia;
  digitalWrite(trig, LOW);  //pino trig é setado como LOW
  delayMicroseconds(2); // 2 microssegundos de delay

  digitalWrite(trig, HIGH); //pino trig setado como HIGH
  delayMicroseconds(10);  //10 microssegundos de delay
  digitalWrite(trig, LOW); //pino trig setado como LOW novamente
  duracao = pulseIn(echo, HIGH); 
  
  //}
  //Esse tempo retornado pela função pulseIn é o tempo entre a chamada e o pino entrar em HIGH
  //O valor retornado vem dobrado pois é o valor de ida e volta
  distancia = (duracao/2) / 29.1;


    //Serial.print(distancia);
    //Serial.println(" cm");
   if (distancia <18)  // Se a distancia for menor que 18 liga a bomba
   digitalWrite(bomba,HIGH);
   else
  digitalWrite(bomba,LOW); //Se não for desliga
   
  
  delay(500); //Delay
}


//Fim do codigo







Funcionamento
o sensor fara medições constantes da base superior da haste em que ele foi posicionado, e sempre que essa medição for menor que 18 centímetros a bomba sera acionada para despejar sabão, sempre que algum objeto ou a mão for posicionada abaixo do sensor a leitura sera inferior a 18 centímetros ocasionando o despejo de sabão.... 

Veja o vídeo de seu funcionamento abaixo.






Veja outro vídeo que criei abaixo, este não utiliza Arduíno, e ao invés do sensor ultrassônico utiliza sensor PIR .





Sensor de luz acionando rele mais código fonte comentado

 Neste projeto iremos usar um sensor de luz ou foto sensor com saída digital, diferentemente da analógica que retorna um valor que vai de 1 até 1022 já a saída digital retorna sempre 0 e 1 ou seja 0 HIGH (ligado) e LOW (desligado), por se tratar de uma saída digital iremos utilizar neste projeto o pino digital 8 que sera configurado como INPUT (entrada).



Vamos agora conectar Sensor de luz no Arduíno 
Para isto vamos utilizar um;
 Sensor de luz(photosensor)
_Arduino.
_6 fios jumpers
1 modulo rele 5v com 1 canal



Utilizamos uma protoboard pois o Arduíno só possui uma saída de  5v.

Conexão modulo rele.
-Conecte o fio 5V do Arduino na entrada VCC do Modulo rele
-Conecte o fio GND do Arduino na entrada GND do Modulo rele.
-Conecte o fio D13 do Arduino na entrada IN Modulo rele.

Conexão modulo Sensor de luz.
-Conecte o fio 5V do Arduino na entrada VCC do sensor de luz
-Conecte o fio GND do Arduino na entrada terra do sensor de luz.
-Conecte o fio D8 do Arduino na entrada DO do sensor de luz.
OBS; D--> pinos digitais


//Inicio do código

int sensor = 8;      //Pino digital em que o sensor está conectado.
int valSensor = 0;   //Usada para ler o valor do sensor em tempo real.
const int rele = 13;  //Pino digital em que o rele está conectado.


void setup(){   //Função setup, executado uma vez ao ligar o Arduino.
   Serial.begin (9600);
  pinMode(rele,OUTPUT); //Define rele como saida
  pinMode(sensor,INPUT);  //Define sensor como entrada
}

void loop(){     //Função loop, repete as linhas enquanto o arduino permanece ligado.
  
   valSensor = digitalRead(sensor);
   
  
  if (valSensor == LOW) // se valor for zero( A luz esta acesa)
  {
    digitalWrite(rele, HIGH); // Liga o rele
     Serial.println("Luz Acesa"); 
  }
  else
  {
    digitalWrite(rele, LOW); // Desliga o rele
     Serial.println("Luz Apagada");
  }

   

   
  delay(500); 
}
//Fim do código











Como conectar sensor ultrassônico no Arduíno com código fonte

  O sensor ultrassônico HC_-SR04 é um excelente custo beneficio,possui capacidade de medição de 2cm até 4,5m com excelente precisão de apenas 3mm alem de ser barato. Seu funcionamento se da pela emissão de ondas ultrassônicas que é emitida por um sensor e recebida pelo outro, ai então calcula-se esse tempo e se tem a distancia do objeto.




Vamos agora conectar sensor ultrassônico no Arduíno 
Para isto vamos utilizar um;
 Sensor ultrassônico 
_Arduino.
_4-fios jumpers



-Conecte o fio 5V do Arduino na entrada VCC do sensor ultrassônico . 
-Conecte o fio GND do Arduino na entrada GND do sensor ultrassônico.
-Conecte o fio D6 do Arduino na entrada Trig do sensor ultrassônico.
-Conecte o fio D7 do Arduino na entrada Echo do sensor ultrassônico.

OBS; D--> pinos digitais

//Inicio do código 

#define trig 8 //ligue o trig no pino 7
#define echo 7 //ligue o echo no pino 6
 
void setup() {
  Serial.begin (9600);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  
}
 
void loop() {
  long duracao, distancia;
  digitalWrite(trig, LOW);  //pino trig é setado como LOW
  delayMicroseconds(2); // 2 microssegundos de delay
 
  digitalWrite(trig, HIGH); //pino trig setado como HIGH
  delayMicroseconds(10);  //10 microssegundos de delay
  digitalWrite(trig, LOW); //pino trig setado como LOW novamente
  duracao = pulseIn(echo, HIGH); 
  
  //}
  //Esse tempo retornado pela função pulseIn é o tempo entre a chamada e o pino entrar em HIGH
  //O valor retornado vem dobrado pois é o valor de ida e volta
  distancia = (duracao/2) / 29.1;
 
 
    Serial.print(distancia);
    Serial.println(" cm");
   
  
  delay(500);
}

//Fim do codigo





Vídeo 


Como utilizar display LCD usando interface LCD I2C no arduino

    Chega de usar aquela montureira de fios para conectar seu display LCD, com a interface I2C e possível reduzir drasticamente a quantidade de portas utilizadas do Arduíno, para apenas 2, isso e possível graças ao chip controlador . É possível também aumentar e diminuir o contraste da tela por meio do potenciômetro que já vem na própria interface.
























Vamos agora conectar a interface LCD I2C.
Para isto vamos utilizar um;
  Interface LCD I2C
_Arduino.
_4-fios jumpers




-Conecte o fio 5V do Arduino na entrada VCC da Interface LCD I2C . 
-Conecte o fio GND do Arduino na entrada GND da Interface LCD I2C.
-Conecte o fio A4 do Arduino na entrada SDA da Interface LCD I2C.
-Conecte o fio A5 do Arduino na entradaSCL da Interface LCD I2C.


Use as seguintes bibliotecas já incluidas na IDE do arduino ( LiquidCrystal, Wire)








Carregue o código abaixo no seu Arduíno .
//inicio do código 


#include <Wire.h>

#include <LiquidCrystal.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Seta o endereco do display 0x27, para 16 caracteres e 2 linhas o display
void setup()
{
lcd.init(); // Inicializa o LCD.

// Imprime a mensagem no LCD.
lcd.backlight();
lcd.print("Ola , Mundo  ");
}
void loop()
{
}


//Fim do código 




Como ligar Módulo Sensor Magnético Reed Switch com código fonte comentado

 O modulo Reed Switch ou Sensor Magnético, possui um funcionamento muito simples, que é ativado por um campo magnetítico produzido por um simples ima, que quando é aproximado da capsula de vidro do sensor produz uma continuidade, que e lida pelo Arduíno, essa continuidade se da pela união das duas tiras metálicas que ha dentro da capsula de vidro , que e selada e preenchida por um gás inerte, o que torna o atrito praticamente inexistente dentro da capsula, o que permite que as tiras metálicas se unam com o minimo campo magnético possível.  Pode ser ativado ate com um ima de geladeira pequeno. 







Vamos agora conectar o sensor Magnético ao Arduíno.
Para isto vamos utilizar um;
 Sensor Magnético
_Arduino.
_3-fios jumpers


Esquema de ligação;

-Conecte o fio 5V do Arduino na 1°lina da protoboard, que sera a positiva. 
-Conecte o fio GND do Arduino na 2°lina da protoboard, que sera a negativa.
-Adicione o resitor de 300ohm na protoboard e conecte a ele o fio negativo e conecte o LED com a parte negativa voltada pra ele, em seguida conecte o fio do pino 13 a outra parte do LED.
Agora conecte o sensor, 1° fio do pino 9 do arduino, conecte ele ao pino DO do sensor, em seguida conecte o o negativo e o positivo.



Carregue o código abaixo no seu Arduíno .



//Inicio do código 


const int hallPin = 9;     // Conecte o pino de sinal
const int ledPin =  13;     // Conecte o pino positivo do lED
// variables will change:
int hallState = 0;          // Variavel de leitura do sensor

void setup() {
  // inicia o LED como saida:
  pinMode(ledPin, OUTPUT);
  // inicia o sensor como como entrada:
  pinMode(hallPin, INPUT);
}

void loop(){
  // lê o estatus do sensor:
  hallState = digitalRead(hallPin);

  if (hallState == LOW) {
    // liga o LED:
    digitalWrite(ledPin, LOW);
  }
  else {
    // desliga o LED:
    digitalWrite(ledPin, HIGH);
  }
}


//Fim do código