Kumpulan program arduino #02

1. Sensor Garis

Sensor Garis
int a;

void setup()
{
  Serial.begin(9600);
  a = 0;
  pinMode(A0, INPUT);
}

void loop()
{
  a = digitalRead(A0);
  Serial.print("sensor:");
  Serial.println(a);
  delay(100);

}

2. Sensor Suara

volatile boolean data_;
volatile boolean a;

void setup()
{
  Serial.begin(9600);
  data_ = 0;
  a = 0;
  pinMode(A0, INPUT);
}

void loop()
{
  if (data_ == digitalRead(A0)) {
    data_ = digitalRead(A0);
    a = !a;
    Serial.print("sensor:");
    Serial.println(a);
    delay(100);

  }
}

3. Sensor Jarak(Ultrasonic)

sensor ultrasonic
volatile int a;

float checkdistance_A0_A1() {
  digitalWrite(A0, LOW);
  delayMicroseconds(2);
  digitalWrite(A0, HIGH);
  delayMicroseconds(10);
  digitalWrite(A0, LOW);
  float distance = pulseIn(A1, HIGH) / 58.00;
  delay(10);
  return distance;
}

void setup(){
  Serial.begin(9600);
  a = 0;
  Serial.println("mengukur jarak menggunakan ultrasonic");
  Serial.println("===============================");
  pinMode(A0, OUTPUT);
  pinMode(A1, INPUT);
}

void loop(){
  a = checkdistance_A0_A1();
  Serial.print("jarak =");
  Serial.println(a);
  delay(500);

}

4. Sensor Suhu dan Kelembapan(DHT11)

sensor suhu dan kelembapan

download library: https://github.com/markruys/arduino-DHT

#include "DHT.h"

DHT dht;

void setup()
{
  Serial.begin(9600);
  Serial.println();
  Serial.println("Status\tHumidity (%)\tTemperature (C)");

  dht.setup(A0); // data pin A0
}

void loop()
{
  delay(dht.getMinimumSamplingPeriod());

  float humidity = dht.getHumidity();
  float temperature = dht.getTemperature();

  Serial.print(dht.getStatusString());
  Serial.print("\t");
  Serial.print(humidity, 1);
  Serial.print("\t\t");
  Serial.print(temperature, 1);
  
}

5. Sensor Sentuh

sensor sentuh
volatile boolean data_;
volatile boolean a;

void setup()
{
  Serial.begin(9600);
  data_ = 0;
  a = 0;
  pinMode(A0, INPUT);
}

void loop()
{
  if (data_ != digitalRead(A0)) {
    data_ = digitalRead(A0);
    a = !a;
    Serial.print("sensor:");
    Serial.println(a);
    delay(100);

  }
}

6. Sensor Gerak(PIR)

Sensor Gerak
bagia bawah PIR HC-SR501 (sumber)
//Sensor PIR, output ---|____  HIGH-LOW seting Delay_Time minimal
//setelah mendeteksi gerakan output HIGH selama 1,8S
//setelah 1,8S akan menjadi LOW selama 6S sebelum mendeteksi gerakan baru

volatile boolean dataPIR;
int temp;
int temp1;

void setup()
{
  Serial.begin(9600);
  pinMode(A0, INPUT);
  dataPIR=0;
}

void loop(){
    dataPIR = digitalRead(A0);

    //mendeteksi ada gerakan
    if (dataPIR==1){
      if (temp1==1){
        Serial.println("PIR mendeteksi ada gerakan:");
        //tuliskan program dibawah ini, ketika mendeteksi gerakan:
        
        
        }
      delay(100);temp1 = temp1 + 1;
      
      if (temp1%10==0) {
        Serial.print("HIGH:");
        Serial.println(temp1);}
      }

    //lama waktu LOW, sebelum bisa mendeteksi gerakan baru
    if (temp<=70) {              //counter menghitung 7 detik
      delay(100);temp = temp + 1;
      
      if (temp%10==0) {
        Serial.print("LOW:");
        Serial.println(temp);}
        if (temp==70){Serial.println("PIR siap merespon gerakan baru:");}
      }

    if (dataPIR==0){temp1=0;}   //reset counter
    if (dataPIR==1){temp=0;}    //reset counter jika ada gerakan
    
}