วันพุธที่ 28 สิงหาคม พ.ศ. 2562

งานที่ 17


DHT11 Humidity Sensor on Arduino


#include <LiquidCrystal.h>
LiquidCrystal lcd(4, 5, 0, 1, 2, 3);
byte degree_symbol[8] = 
              {
                0b00111,
                0b00101,
                0b00111,
                0b00000,
                0b00000,
                0b00000,
                0b00000,
                0b00000
              };
int gate=11; 
volatile unsigned long duration=0;
unsigned char i[5];
unsigned int j[40];
unsigned char value=0;
unsigned answer=0;
int z=0;
int b=1;
void setup() 
{

lcd.begin(16, 2);
 lcd.print("Temp = ");
 lcd.setCursor(0,1);
 lcd.print("Humidity = ");
 lcd.createChar(1, degree_symbol);
 lcd.setCursor(9,0);
 lcd.write(1);
 lcd.print("C");
 lcd.setCursor(13,1);
 lcd.print("%");
}

void loop() 
{

 delay(1000);
 while(1)
 {
  delay(1000);
  pinMode(gate,OUTPUT);
  digitalWrite(gate,LOW);
  delay(20);
  digitalWrite(gate,HIGH);
  pinMode(gate,INPUT_PULLUP);//by default it will become high due to internal pull up
 // delayMicroseconds(40);

  
  duration=pulseIn(gate, LOW);
  if(duration <= 84 && duration >= 72)
  {
      while(1)
      {
        duration=pulseIn(gate, HIGH);
        
        if(duration <= 26 && duration >= 20){
        value=0;}
        
        else if(duration <= 74 && duration >= 65){
        value=1;}
        
        else if(z==40){
        break;}
        
        i[z/8]|=value<<(7- (z%8));
        j[z]=value;
        z++;
      }
    }
answer=i[0]+i[1]+i[2]+i[3];

if(answer==i[4] && answer!=0)
{
lcd.setCursor(7,0);
lcd.print(i[2]);
lcd.setCursor(11,1);
lcd.print(i[0]);
}

z=0;
i[0]=i[1]=i[2]=i[3]=i[4]=0;
 }
}

งานที่ 16


Arduino Controlled Power Outlet



const int analogInPin = A0;
const int outPin = 8;
int sensorValue = 0;

void setup() 
{
  Serial.begin(9600);
pinMode(outPin, OUTPUT);
digitalWrite(outPin, HIGH);
}

void loop() 
{
  sensorValue = analogRead(analogInPin);
  Serial.println(sensorValue);
  
  if(sensorValue>400)
  {
    digitalWrite(outPin,LOW);
   }
  else 
   {
   digitalWrite(outPin,HIGH);
   }
 delay(1);
}


งานที่ 15

Arduino based Wireless Doorbell


int buz=11; int sen=2; void setup() { pinMode(buz,OUTPUT); pinMode(sen,INPUT); digitalWrite(buz,LOW); digitalWrite(sen,HIGH); } void loop() { while(digitalRead(sen)==HIGH); digitalWrite(buz,HIGH); while(digitalRead(sen)==LOW); digitalWrite(buz,LOW); }

งานที่ 14


Arduino Traffic Light Controller



int Lane1[] = {13,12,11}; // Lane 1 Red, Yellow and Green
int Lane2[] = {10,9,8};// Lane 2 Red, Yellow and Green
int Lane3[] = {7,6,5};// Lane 3 Red, Yellow and Green
int Lane4[] = {4,3,2};// Lane 4 Red, Yellow and Green

void setup() 
{
  for (int i = 0; i < 3; i++)
  {
    pinMode(Lane1[i], OUTPUT); 
    pinMode(Lane2[i], OUTPUT);
    pinMode(Lane3[i], OUTPUT);
    pinMode(Lane4[i], OUTPUT);
  }
  for (int i = 0; i < 3; i++)
  {
    digitalWrite(Lane1[i], LOW); 
    digitalWrite(Lane2[i], LOW);
    digitalWrite(Lane3[i], LOW);
    digitalWrite(Lane4[i], LOW);
  }
  
}

void loop() 
 {
  digitalWrite(Lane1[2], HIGH);
  digitalWrite(Lane3[0], HIGH);
  digitalWrite(Lane4[0], HIGH);
  digitalWrite(Lane2[0], HIGH);
  delay(7000);
  digitalWrite(Lane1[2], LOW);
  digitalWrite(Lane3[0], LOW);
  digitalWrite(Lane1[1], HIGH);
  digitalWrite(Lane3[1], HIGH);
  delay(3000);
  digitalWrite(Lane1[1], LOW);
  digitalWrite(Lane3[1], LOW);
  digitalWrite(Lane1[0], HIGH);
  digitalWrite(Lane3[2], HIGH);
  delay(7000);
  digitalWrite(Lane3[2], LOW);
  digitalWrite(Lane4[0], LOW);
  digitalWrite(Lane3[1], HIGH);
  digitalWrite(Lane4[1], HIGH);
  delay(3000);
  digitalWrite(Lane3[1], LOW);
  digitalWrite(Lane4[1], LOW);
  digitalWrite(Lane3[0], HIGH);
  digitalWrite(Lane4[2], HIGH);
  delay(7000);
  digitalWrite(Lane4[2], LOW);
  digitalWrite(Lane2[0], LOW);
  digitalWrite(Lane4[1], HIGH);
  digitalWrite(Lane2[1], HIGH);
  delay(3000);
  digitalWrite(Lane4[1], LOW);
  digitalWrite(Lane2[1], LOW);
  digitalWrite(Lane4[0], HIGH);
  digitalWrite(Lane2[2], HIGH);
  delay(7000);
  digitalWrite(Lane1[0], LOW);
  digitalWrite(Lane2[2], LOW);
  digitalWrite(Lane1[1], HIGH);
  digitalWrite(Lane2[1], HIGH);
  delay(3000);
  digitalWrite(Lane2[1], LOW);
  digitalWrite(Lane1[1], LOW);
 }

งานที่ 13


Arduino 4-Digit 7-Segment LED Display



#define duration 5000 

#define A 2
#define B 3
#define C 4
#define D 5
#define E 6
#define F 7
#define G 8
#define DP 9

#define disp1 10
#define disp2 11
#define disp3 12
#define disp4 13

#define numbersegments { \
{1,1,1,1,1,1,0,0},\
{0,1,1,0,0,0,0,0},\
{1,1,0,1,1,0,1,0},\
{1,1,1,1,0,0,1,0},\
{0,1,1,0,0,1,1,0},\
{1,0,1,1,0,1,1,0},\
{1,0,1,1,1,1,1,0},\
{1,1,1,0,0,0,0,0},\
{1,1,1,1,1,1,1,0},\
{1,1,1,0,0,1,1,0},\
}

byte numbers[10][8] = numbersegments; 
const int segments[8] = {A, B, C, D, E, F, G, DP};

void setup() 
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(DP, OUTPUT);
  pinMode(disp1, OUTPUT);
  pinMode(disp2, OUTPUT);  
  pinMode(disp3, OUTPUT);
  pinMode(disp4, OUTPUT);
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  digitalWrite(DP, LOW);
  digitalWrite(disp1, LOW);
  digitalWrite(disp2, LOW);
  digitalWrite(disp3, LOW);
  digitalWrite(disp4, LOW);
 } 

 void loop()
 { 
  for (int digit4=0; digit4<10; digit4++)
  { 
    for (int digit3=0; digit3<10; digit3++)
     { 
       for (int digit2=0; digit2<10; digit2++)
        { 
          for (int digit1=0; digit1<10; digit1++)
           { 
             for (int t=0; t<30; t++)
              { 
                setsegments(digit1, disp1, duration);
                setsegments(digit2, disp2, duration);
                setsegments(digit3, disp3, duration);
                setsegments(digit4, disp4, duration);
               }
            }
         }
      }
   }
 }        

  void setsegments(int number, int digit, int ontime)
  { 
   

for (int seg=0; seg<8; seg++)

    { 
      if(numbers[number][seg]==1)
      { 
        digitalWrite(segments[seg], HIGH);
      }
      else 
      {
        digitalWrite(segments[seg], LOW);
      }
    }
    digitalWrite(digit, HIGH);
    delayMicroseconds(ontime);
    digitalWrite(digit, LOW);
  }

งานที่ 12


Arduino Light Sensor



int sensorPin = A0;    // select the input pin for the potentiometer
//int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor

void setup() {
  // declare the ledPin as an OUTPUT:
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  pinMode(11,OUTPUT);
}

/*void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  // turn the ledPin on
  digitalWrite(ledPin, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);
  // turn the ledPin off:
  digitalWrite(ledPin, LOW);
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);
}*/
void loop()
{
  sensorValue=analogRead(sensorPin);
  if(sensorValue <= 14)
  digitalWrite(11,HIGH);
  else
  digitalWrite(11,LOW);
  Serial.println(sensorValue);
  delay(2);
}



งานที่ 11


Digital Arduino Voltmeter



#include "LiquidCrystal.h"

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

float voltage = 0.0;
float temp=0.0;
int analog_value;

void setup()
{
   lcd.begin(16, 2); 
   lcd.setCursor (0,0);
   lcd.print(" Arduino based ");
   lcd.setCursor(0,1); 
   lcd.print("Digital Voltmeter");
delay(2000);
}
void loop() 
{

   
   analog_value = analogRead(A0);
   temp = (analog_value * 5.0) / 1024.0; 

   voltage = temp/(0.0909);
   if (voltage < 0.1) 
   {
     voltage=0.0;
   } 
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Voltage= ");
    lcd.print(voltage);
    lcd.setCursor(13,1);
    lcd.print("V");
    delay(30);
}

งานที่ 10


Speed and Direction Control of DC Motor using Arduino



const int potPin = A0;
const int buttonPin = 7;
const int forward1 = 5;
const int forward2 = 4;
const int backward1 = 3;
const int backward2 = 2;
int potValue = 0;
int motorValue = 0;
int buttonState = 0;
boolean a;

void setup() 
{

 pinMode(buttonPin, INPUT_PULLUP);
 pinMode (forward1, OUTPUT);
 pinMode (forward2, OUTPUT);
 pinMode (backward1, OUTPUT);
 pinMode (backward2, OUTPUT);

}

void loop() 
{

 potValue = analogRead(potPin);  
 motorValue = map(potValue, 0, 1023, 0, 255);
 buttonState = digitalRead(buttonPin);

 if (buttonState == LOW) 
  {
    a=!a;
  }
  if(a)
  {
   analogWrite(backward1, motorValue);
   digitalWrite (backward2, HIGH);  
   digitalWrite (forward1, LOW);
   digitalWrite (forward2, LOW);    
  
  }

 else 
  {
   
   analogWrite(forward1, motorValue);
   digitalWrite (forward2, HIGH);
   digitalWrite (backward1, LOW);
   digitalWrite (backward2, LOW);
  
  }
  
}

งานที่ 9


Interfacing LCD with Arduino


     #include<LiquidCrystal.h>
     LiquidCrystal lcd (5, 4, 3, 2, 1, 0);  // sets the interfacing pins
     Void setup ()
     {
     lcd.begin(16, 2);  // initializes the 16x2 LCD
     }
     Void loop ()
    {
     lcd.setCursor (0, 0);           //sets the cursor at row 0 column 0
     lcd.print ("Electronichub.org"); // prints 16x2 LCD MODULE
     lcd.setCursor (0,1);           //sets the cursor at row 0 column 1
     lcd.print ("16X2 LCD");     
     }