วันอังคารที่ 25 กันยายน พ.ศ. 2561

งานปฏิบัติที่ 18

wiring diagram

รูปที่ 1



Code 1
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
int aVal=0,tempaVal=0;
const int SW_ON = 2; 
const int led_ON =  13; int CSW_ON = 0; int C_CSW_ON =0;
int Relay1=12,Relay2=11,Relay3=10,Relay4=9;
int sensorPin = A0;
int sensorValue = 0;
void setup() {
  lcd.backlight();
  lcd.begin();
  Serial.begin(9600);
  pinMode(led_ON, OUTPUT);pinMode(SW_ON, INPUT);
  pinMode(Relay1,OUTPUT);pinMode(Relay2,OUTPUT);
  pinMode(Relay3,OUTPUT);pinMode(Relay4,OUTPUT);
//
  digitalWrite(Relay1,HIGH);digitalWrite(Relay2,HIGH);
  digitalWrite(Relay3,HIGH);digitalWrite(Relay4,HIGH);
  lcd.setCursor(0,0);
  lcd.print("Project2017");
  lcd.setCursor(0,1);
  lcd.print("standby");
}
//END Setup
void loop() {
  CSW_ON = digitalRead(SW_ON);
  sensorValue = analogRead(sensorPin);//Serial.println(sensorValue);
  //=======================================================================
  int c_sensorValue1 = map(sensorValue,0,1023,0,255);
  //Serial.print("c_sensorValue1 = ");Serial.println(c_sensorValue1);
  int c_sensorValue2 = map(sensorValue,0,1023,255,0);
  //Serial.print("c_sensorValue2 = ");Serial.println(c_sensorValue2);
  //=======================================================================
  //check SW_ON
  if (CSW_ON == LOW) { delay(1000);
    lcd.clear();
    C_CSW_ON++;
      Serial.print("C_CSW_ON = ");Serial.println(C_CSW_ON);
    //OPEN Project
    digitalWrite(led_ON, HIGH);
  //END check SW_ON
    if(C_CSW_ON == 1){
    lcd.setCursor(0,0);
    lcd.print("Power On ");
    delay(1000);
    lcd.clear();
    lcd.print("Power On ");
    delay(1000);
    lcd.clear();
    }
  }
  if(C_CSW_ON == 1){//OPEN PROJECT
    digitalWrite(led_ON, HIGH);
    //delay(1000);
    digitalWrite(Relay1, HIGH);
    //ตรวจสอบค่า VR================
      //lcd.clear();
      lcd.setCursor(0,0);
      lcd.print(c_sensorValue1);
      lcd.print(" ");
      //==============================
      if(c_sensorValue1 >= 150){
      digitalWrite(Relay2, LOW);
      }else{
        digitalWrite(Relay2, HIGH);
        }
      //=============================
    //RelaySTART();
    }else{//OFF PROJECT
    lcd.setCursor(0,0);
    //lcd.print("Power Off");
    lcd.setCursor(0,1);
    lcd.print("standby");
    digitalWrite(led_ON, LOW); C_CSW_ON = 0;
    RelaySTOP();
    }
  }//END Loop
//======โปรแกรมย่อย==========
void RelaySTOP(){
digitalWrite(Relay1,HIGH);digitalWrite(Relay2,HIGH);
digitalWrite(Relay3,HIGH);digitalWrite(Relay4,HIGH);  
  }
void RelaySTART(){
digitalWrite(Relay1,LOW);digitalWrite(Relay2,LOW);
digitalWrite(Relay3,LOW);digitalWrite(Relay4,LOW); 
}  

งานปฏิบัติที่ 17

wiring diagram

รูปที่1

Code 1
#include <Stepper.h>
#include "Keypad.h"
#define STEP_ANGLE_4STEP 32 //360/11.25 degree
#define STEP_OUT_WITH_GEAR 2048 //32*64
Stepper stepper(STEP_ANGLE_4STEP,8,10,9,11);
char keys[4][4]={
  {'7','8','9','A'},
  {'4','5','6','B'},
  {'1','2','3','C'},
  {'*','0','#','D'}};
byte rowPins[] = {7,6,5,4};
byte colPins[] = {3,2,1,0};
int speedmotor = 400;
int dirmotor = 1;
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins,4,4);
void setup() 
{
}
void loop() 
{
  char key = keypad.getKey();
  if (key != NO_KEY)
  {
        if (key == '1')
            speedmotor = 400;
        if (key == '2')
            speedmotor = 700;
        if (key == '3')
            speedmotor = 1000;  
        if (key == 'A')
            dirmotor = 1;
        if (key == 'B')
            dirmotor = -1;     
        if (key == 'C')
            dirmotor = 0; 
  }
  stepper.setSpeed(speedmotor);
  stepper.step(dirmotor);
}


                                                 wiring diagram

รูปที่ 2



Code 2

#include <Servo.h>
Servo servo;
int x,y;
void setup() 
{
  servo.attach(9);
}
void loop() 
{
  x = analogRead(A0);
  y = map(x,0,1023,0,179);
  servo.write(y);
  delay(50);
}



รูปที่ 3


Code 3
const int SW1 = 2;const int SW2 = 3;const int SW3 = 4; const int SW4 = 5;        
const int ledPin =  13;const int Relay1 =  12;const int Relay2 =  11;
const int Relay3 =  10; const int Relay4 =  9;     
int checkSW1 = 0;int checkSW2 = 0;int checkSW3 = 0;int checkSW4 = 0;
void setup() {
  //========กำหนด output================
  pinMode(ledPin, OUTPUT);
  pinMode(Relay1, OUTPUT); 
  pinMode(Relay2, OUTPUT);  
  pinMode(Relay3, OUTPUT); 
  pinMode(Relay4, OUTPUT);  
  //========กำหนด input==================
  pinMode(SW1, INPUT); 
  pinMode(SW2, INPUT);  
  pinMode(SW3, INPUT);  
  pinMode(SW4, INPUT);  
  //========กำหนดค่า output===================
  digitalWrite(Relay1, LOW); 
  digitalWrite(Relay2, LOW); 
  digitalWrite(Relay3, LOW); 
  digitalWrite(Relay4, LOW);  
}
void loop(){
  //============ตรวจสอบการควบคุม SW================
  checkSW1 = digitalRead(SW1);
  checkSW2 = digitalRead(SW2);
  checkSW3 = digitalRead(SW3);
  checkSW4 = digitalRead(SW4);
  //=============================================
  if (checkSW1 == LOW) {
    //UP();    
    digitalWrite(Relay1, HIGH);  
  } 
  if (checkSW2 == LOW) { 
    //DOWN();
    digitalWrite(Relay2, HIGH);  
  }
  if (checkSW3 == LOW) { 
    //RIGHT();    
    digitalWrite(Relay3, HIGH);  
  }
  if (checkSW4 == LOW) { 
    //LEFT();   
    digitalWrite(Relay4, HIGH);  
  }
  if (checkSW1 == HIGH && checkSW2 == HIGH && checkSW3 == HIGH && checkSW4 == HIGH) { 
    //STOP();    
    digitalWrite(Relay1, LOW); 
    digitalWrite(Relay2, LOW); 
    digitalWrite(Relay3, LOW); 
    digitalWrite(Relay4, LOW);   
  }
}
//=============function===================
void UP(){
//  Serial.print('RRR');
  digitalWrite(ledPin, HIGH);
  digitalWrite(Relay1,LOW);
  digitalWrite(Relay2,HIGH);
  digitalWrite(Relay3,LOW);
  digitalWrite(Relay4,HIGH);
}
void DOWN(){
//  Serial.print('RRR');
  digitalWrite(ledPin, HIGH);
  digitalWrite(Relay1,HIGH);
  digitalWrite(Relay2,LOW);
  digitalWrite(Relay3,HIGH);
  digitalWrite(Relay4,LOW);
}
void RIGHT(){
//  Serial.print('RRR');
  digitalWrite(ledPin, HIGH);
  digitalWrite(Relay1,HIGH);
  digitalWrite(Relay2,LOW);
  digitalWrite(Relay3,LOW);
  digitalWrite(Relay4,HIGH);
}
void LEFT(){
//  Serial.print('RRR');
  digitalWrite(ledPin, HIGH);
  digitalWrite(Relay1,LOW);
  digitalWrite(Relay2,HIGH);
  digitalWrite(Relay3,HIGH);
  digitalWrite(Relay4,LOW);
}
void STOP(){
//  Serial.print('RRR');
  digitalWrite(ledPin,LOW);
  digitalWrite(Relay1,LOW);
  digitalWrite(Relay2,LOW);
  digitalWrite(Relay3,LOW);
  digitalWrite(Relay4,LOW);
}

งานปฏิบัติที่ 16

wiring diagram

รูปที่ 1



Code 1
#include <LedControl.h>
#include <DHT11.h>
int pin=4;
DHT11 dht11(pin);
LedControl lc=LedControl(8,10,9,1); 
// Pin 8->DIN, 10->CLK, 9->CS(LOAD), 1 = No.of devices
void show2digit(int h,int t)
{
  int seg1,seg2,seg3,seg4;
  seg1 = h%10;
  seg2 = h/10;
  lc.setDigit(0,4,seg1,false); 
  lc.setDigit(0,5,seg2,false);
  seg3 = t%10;
  seg4 = t/10;
  lc.setDigit(0,0,seg3,false); 
  lc.setDigit(0,1,seg4,false);
  delay(300);
}
void setup()
{
  Serial.begin(9600);
  while (!Serial) {
      ; // wait for serial port to connect. Needed for Leonardo only
    }
  lc.shutdown(0,false);  
  lc.setIntensity(0,5); 
  lc.clearDisplay(0);
}
void loop()
{
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0)
  {
    Serial.print("temperature:");
    Serial.print(temp);
    Serial.print(" humidity:");
    Serial.print(humi);
    Serial.println();
    
  }
  else
  {
    Serial.println();
    Serial.print("Error No :");
    Serial.print(err);
    Serial.println();    
  }
  lc.clearDisplay(0);
  show2digit(humi,temp);
}



                           wiring diagram
รูปที่ 2


Code 2
#include <LiquidCrystal_I2C.h> 
#include <DHT11.h>
int pin=4;
DHT11 dht11(pin);
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
  lcd.begin();
  lcd.setCursor(0,0);lcd.print("H =    %RH");
  lcd.setCursor(0,1);lcd.print("T =    C");
}
void loop()
{
int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0)
  {
    Serial.print("temperature:");
    Serial.print(temp);
    Serial.print(" humidity:");
    Serial.print(humi);
    Serial.println();
    
  }
  else
  {
    Serial.println();
    Serial.print("Error No :");
    Serial.print(err);
    Serial.println();    
  }
  lcd.setCursor(4,0);
  lcd.print(humi);
  lcd.setCursor(4,1);
  lcd.print(temp);
  delay(300);
}

วันเสาร์ที่ 8 กันยายน พ.ศ. 2561

งานปฏิบัติที่ 15

wiring diagram🔻

รุปที่ 1🔁



Code 1🔻


#include <LedControl.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float Tfloat;
long Tint;
LedControl lc=LedControl(8,10,9,1); 
// Pin 8->DIN, 10->CLK, 9->CS(LOAD), 1 = No.of devices
void show6digit(int num)
{
  int seg1,seg2;
  seg2 = (((((num%100000)%10000)%1000)%100)/10);
  seg1 = (((((num%100000)%10000)%1000)%100)%10);
  lc.setDigit(0,0,seg1,false); 
  if (num>=10)
      lc.setDigit(0,1,seg2,false);
  delay(300);
}
void setup(void)
{
  sensors.begin();
  lc.shutdown(0,false);  
  lc.setIntensity(0,5); 
  lc.clearDisplay(0);
void loop(void)
{
  sensors.requestTemperatures(); 
  Tfloat = sensors.getTempCByIndex(0);
  Tint = int(Tfloat);
  lc.clearDisplay(0);
  show6digit(Tint);
}





Code 2🔻

#include <LedControl.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float Tfloat;
long Tint;
LedControl lc=LedControl(8,10,9,1); 
// Pin 8->DIN, 10->CLK, 9->CS(LOAD), 1 = No.of devices
void show6digit(long num)
{
  int seg1,seg2,seg3,seg4,seg5,seg6;
  seg6 = (num/100000);
  seg5 = ((num%100000)/10000);
  seg4 = (((num%100000)%10000)/1000);
  seg3 = ((((num%100000)%10000)%1000)/100);
  seg2 = (((((num%100000)%10000)%1000)%100)/10);
  seg1 = (((((num%100000)%10000)%1000)%100)%10);
  lc.setDigit(0,0,seg1,false); 
  lc.setDigit(0,1,seg2,false); 
  lc.setDigit(0,2,seg3,false); 
  lc.setDigit(0,3,seg4,false); 
  lc.setDigit(0,4,seg5,true); 
  if (num>=100000)
      lc.setDigit(0,5,seg6,false);
  delay(300);
}
void setup(void)
{
  sensors.begin();
  lc.shutdown(0,false);  
  lc.setIntensity(0,5); 
  lc.clearDisplay(0);
void loop(void)
{
  sensors.requestTemperatures(); 
  Tfloat = sensors.getTempCByIndex(0);
  Tint = long(Tfloat*10000);
  lc.clearDisplay(0);
  show6digit(Tint);
}


รูปที่ 2🔻🔺



Code 3🔻

#include <LiquidCrystal_I2C.h> 
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float Tfloat;
LiquidCrystal_I2C lcd(0x27,16,2);
void setup(void)
{
  sensors.begin();
  lcd.begin();
  Serial.begin(9600);
void loop(void)
{
  sensors.requestTemperatures(); 
  Tfloat = sensors.getTempCByIndex(0);
  Serial.print(Tfloat);
  lcd.setCursor(0,0);
  lcd.print("T = ");
  lcd.print(Tfloat,4);
  delay(250);
}



งานปฏิบัติที่ 14

wiring diagram🔼🔽




Code 1🔻

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int PIRpin = 8;
void setup() 
  lcd.begin();
  pinMode(PIRpin,INPUT);
  lcd.home();
  lcd.print("Waiting for PIR");
  delay(10000);       
  lcd.clear();
}
void loop()
  int x = digitalRead(PIRpin);
  lcd.home();
  lcd.print("PIR = ");
  lcd.print(x);
  delay(100);
🔼
}