วันพฤหัสบดีที่ 27 กันยายน พ.ศ. 2561

งานปฏิบัติที่ 18 งานโปรแกรมรับค่า Analog INPUT มาควบคุม LED แบบต่างๆ

wiring diagram

รูปที่ 1

โค้ดที่18.1 (Code Arduino)
int led = 10;
void setup()
{
  Serial.begin(9600);
  pinMode(led,OUTPUT);     
}
void loop()
{
  int x,y;
  x = analogRead(A0);
  y = map(x,0,1023,0,255);
  Serial.print("x = ");Serial.println(x);
  Serial.print("y = ");Serial.println(y);  
  analogWrite(led,y);
}

โค้ดที่18.2 (Code Arduino) 
int red = 11;int green = 10;int blue = 9;void setup(){  Serial.begin(9600);  pinMode(red,OUTPUT);     pinMode(green,OUTPUT);    pinMode(blue,OUTPUT);    }void loop(){  int x,y,z,r,s,t;  x = analogRead(A0);  y = analogRead(A1);  z = analogRead(A2);  r = map(x,0,1023,0,255);  s = map(y,0,1023,0,255);  t = map(z,0,1023,0,255);  Serial.print("r = ");Serial.println(r);  Serial.print("s = ");Serial.println(s);   Serial.print("t = ");Serial.println(t);   analogWrite(red,r);  analogWrite(green,s);  analogWrite(blue,t);
}

โค้ดที่18.3 (Code Arduino) 
int red = 11;
int green = 10;
int blue = 9;
void setup()
{
  Serial.begin(9600);
  pinMode(red,OUTPUT);   
  pinMode(green,OUTPUT);  
  pinMode(blue,OUTPUT);    
}
void loop()
{
  int x,y,z,r,s,t;
  x = analogRead(A0);
  y = analogRead(A1);
  z = analogRead(A2);
  r = map(x,0,1023,0,255);
  s = map(y,0,1023,0,255);
  t = map(z,0,1023,0,255);
  Serial.print("r = ");Serial.println(r);
  Serial.print("s = ");Serial.println(s); 
  Serial.print("t = ");Serial.println(t); 
  analogWrite(red,r);
  analogWrite(green,s);
  analogWrite(blue,t);
}

งานปฏิบัติที่ 17 งานโปรแกรม Smart Farm system เบื้องต้น

wiring diagram

รูปที่ 1



โค้ดที่17.1 (Code Arduino)

#include <SoftwareSerial.h>
#include <DHT11.h>
//=============================================
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd(0x27, 16, 2);
LiquidCrystal_I2C lcd(0x3F, 16, 2);
SoftwareSerial ArduinoSerial(3, 2); // RX, TX
//=============================================
int SW_ON = 4,SW_OFF = 5,pin=6;//กำหนดขา INPUT
int Sun = 9,CSun = 0,Relay1 = 12, Relay2 = 11; //กำหนดขา OUTPUT  
int ATL = A0,ATH = A1;//กำหนดขา Analog
int VTL1 = 0,VTH1 = 0,TL = 0,TH =0,VRHL = 50,VRHH = 80;
DHT11 dht11(pin);
//=============================================
void setup()
{
  lcd.begin();
  Serial.begin(115200);
  ArduinoSerial.begin(4800);
  while (!Serial){
    ;
    }
  //=====================================================
  lcd.setCursor(0, 0);lcd.print("Elec Pattayatech");
  lcd.setCursor(0, 1);lcd.print("Smart Farm 2016 ");
  delay(5000);
  //====================================================
  pinMode(Relay1, OUTPUT);pinMode(Relay2, OUTPUT);  
  pinMode(SW_ON, INPUT); pinMode(SW_OFF, INPUT); pinMode(Sun, INPUT);
  digitalWrite(Relay1, HIGH);digitalWrite(Relay2, HIGH);
  lcd.setCursor(0, 0);lcd.print("                ");
  lcd.setCursor(0, 1);lcd.print("                ");
}
//=============================================================
void loop()
{
  while (ArduinoSerial.available() > 0) {
  float val = ArduinoSerial.parseFloat();
  if (ArduinoSerial.read() == '\n') {
  if (val == 10) {
  digitalWrite(13, 1);
  } else if (val == 11) {
  digitalWrite(13, 0);
  }
  Serial.println(val);
  }
  }
  delay(100);
  //========ปรับค่าอุณหภูมิอ้งอิง====================================
  CSun = digitalRead(Sun);
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0)
  {
  VTL1 = analogRead(ATL);
  VTH1 = analogRead(ATH);
  TL = map(VTL1,0,1023,10,30);
  TH = map(VTH1,0,1023,25,45);
  Serial.print("TL :");Serial.print(TL);Serial.println("*C");
  Serial.print("TH :");Serial.print(TH);Serial.println("*C");
  //===========================================================
    int Stemp =(int)(temp);int Shumi=(int)(humi);//ตัดทศนิยม
    Serial.print("temp :");Serial.print(Stemp);Serial.println("*C");
    Serial.print("humidity :");Serial.print(Shumi);Serial.println("%");
    Serial.print("SUN :");Serial.println(CSun);//Serial.println();
    //===================================================
    lcd.setCursor(0, 0);lcd.print("TL:");lcd.print(TL);
    lcd.setCursor(6, 0);lcd.print("TH:");lcd.print(TH);
    lcd.setCursor(12, 0);lcd.print("S1:");lcd.print(!CSun);
    lcd.setCursor(0, 1);lcd.print("TN:");lcd.print(Stemp);
    lcd.setCursor(6, 1);lcd.print("RH:");lcd.print(Shumi);
    lcd.setCursor(12, 1);lcd.print("P1:0");lcd.print(Shumi);
    delay(1000);
    //===================================================
   //=======ควบคุมอุณหภูมิ===========================
   if(temp < TL && temp < TH ){
        digitalWrite(Relay1, HIGH);//ปั๊มน้ำหยุดทำงาน
        lcd.setCursor(12, 1);lcd.print("P1:0");
        delay(100);
        digitalWrite(Relay2, LOW);//หลอดไฟทำงาน
        lcd.setCursor(12, 0);lcd.print("L1:1");
        delay(60000);//หน่วงเวลา 1 นาที
      }else if(temp > TL && temp > TH){
        digitalWrite(Relay2, HIGH);//หลอดไฟไม่ทำงาน
        lcd.setCursor(12, 0);lcd.print("L1:0");
        delay(100);
        digitalWrite(Relay1, LOW);//ปั๊มน้ำทำงาน
        lcd.setCursor(12, 1);lcd.print("P1:1");
        delay(60000);//หน่วงเวลา 1 นาที
      }else if(temp > TL && temp < TH){
       //=======ควบคุมความชื้น===========================
      if(humi < VRHL && humi < VRHH){
        digitalWrite(Relay2, HIGH);//หลอดไฟไม่ทำงาน
        lcd.setCursor(12, 0);lcd.print("L1:0");
        delay(100);
        digitalWrite(Relay1, LOW);//ปั๊มน้ำทำงาน
        lcd.setCursor(12, 1);lcd.print("P1:1");
        delay(60000);//หน่วงเวลา 1 นาที
      }else if(humi > VRHL && humi > VRHH){
        digitalWrite(Relay1, HIGH);//ปั๊มน้ำหยุดทำงาน
        lcd.setCursor(12, 1);lcd.print("P1:0");
        delay(100);
        digitalWrite(Relay2, LOW);//หลอดไฟทำงาน
        lcd.setCursor(12, 0);lcd.print("L1:1");
        delay(60000);//หน่วงเวลา 1 นาที
      }else if(humi > VRHL && humi < VRHH){
        //delay(1000);
        digitalWrite(Relay1, HIGH);//ปั๊มน้ำหยุดทำงาน
        lcd.setCursor(12, 1);lcd.print("P1:0");
        digitalWrite(Relay2, HIGH);//หลอดไฟไม่ทำงาน
        lcd.setCursor(12, 0);lcd.print("L1:0");
        //หน่วงเวลา 1 นาที      
        }
     //=======ENDควบคุมความชื้น===========================      
        }
     //=======ENDควบคุมอุณหภูมิ===========================
  }
  else
  {
    Serial.println();Serial.print("Error No :");
    Serial.print(err);Serial.println();  
  }
 delay(DHT11_RETRY_DELAY);
}

งานปฏิบัติที่ 16 งานการเขียนโปรแกรมควบคุมมอเตอร์


wiring diagram

รุปที่ 1


โค้ดที่16.1 (Code Arduino)
#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);

}






โค้ดที่16.2 (Code Arduino)

#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);
}

งานปฏิบัติที่ 15 งานโปรแกรมการอ่านค่าอุณหภูมิและค่าความชื้นจาก DHT11

wiring diagram

รุปที่ 1



โค้ดที่15.1 (Code Arduino)

#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);
}





โค้ดที่15.2 (Code Arduino)

#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



โค้ดที่15.3 (Code Arduino)

#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 งานโปรแกรมการอ่านค่าอุณหภูมิด้วย DS18B20

wiring diagram

รุปที่ 1




โค้ดที่14.1 (Code Arduino)


#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);
}





โค้ดที่14.2 (Code Arduino)

#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



โค้ดที่14.3 (Code Arduino)

#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);
}

งานปฏิบัติที่ 13 งานโปรแกรมการเชื่อมต่อกับ PIR Sensor

wiring diagram



โค้ดที่13.1 (Code Arduino)


#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);

}

งานปฏิบัติที่ 12 งานโปรแกรมเชื่อมต่อโมดูลวัดระยะทางด้วยอัลตร้าโชนิก HC-SR04

wiring diagram

รูปที่ 1






โค้ดที่12.1 (Code Arduino)


#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM,temp_distCM=0;
void setup() 
{
  lcd.begin();
  lcd.setCursor(0,0);
  lcd.print("Dist =      cm");
  pinMode(triggerPin,OUTPUT);
  pinMode(echoPin,INPUT);
}
void loop() 
{
  digitalWrite(triggerPin,LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin,LOW);
  duration = pulseIn(echoPin,HIGH);
  distCM = duration/58;
  if (temp_distCM != distCM)
  {
    lcd.setCursor(7,0);
    lcd.print("    ");
  }
  lcd.setCursor(7,0);
  lcd.print(distCM);
  temp_distCM = distCM;
  delay(300);

}


โค้ดที่12.2 (Code Arduino)


#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM;
void setup() 
{
  lcd.begin();
  pinMode(triggerPin,OUTPUT);
  pinMode(echoPin,INPUT);
}
void loop() 
{
  digitalWrite(triggerPin,LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin,LOW);
  duration = pulseIn(echoPin,HIGH);
  distCM = duration/58;
  int x = constrain(distCM,4,19);
  lcd.clear();
  lcd.home();
  for (int i=4;i<=x;i++)
      lcd.print("*");
  delay(150);

}




รูปที่ 2


โค้ดที่12.3 (Code Arduino)

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup() 
{
  lcd.begin();
  pinMode(buzzerpin,OUTPUT);
  pinMode(triggerPin,OUTPUT);
  pinMode(echoPin,INPUT);
  digitalWrite(buzzerpin,HIGH);
}
void loop() 
{
  digitalWrite(triggerPin,LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin,LOW);
  duration = pulseIn(echoPin,HIGH);
  distCM = duration/58;
  lcd.home();
    if (distCM > 400)
  {    
    lcd.clear();
    lcd.print("**!!!Alarm!!!**");
    tone(buzzerpin,700,500);
    delay(500);
    digitalWrite(buzzerpin,HIGH);
    delay(70); 
    lcd.setCursor(0,1);
    lcd.print(distCM);   
  }
  else
  {
    lcd.print("<-------------->");
    lcd.setCursor(0,1);
    lcd.print(distCM);
  }
}

โค้ดที่12.4 (Code Arduino)

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup() 
{
  lcd.begin();
  pinMode(buzzerpin,OUTPUT);
  pinMode(triggerPin,OUTPUT);
  pinMode(echoPin,INPUT);
  digitalWrite(buzzerpin,HIGH);
}
void loop() 
{
  digitalWrite(triggerPin,LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin,LOW);
  duration = pulseIn(echoPin,HIGH);
  distCM = duration/58;
  lcd.home();
  if ((distCM>=4)&&(distCM<=30))
  {    
    lcd.clear();
    lcd.print("#####Alarm#####");
    int dl = distCM*20;
    tone(buzzerpin,600,dl);
    delay(dl);
    digitalWrite(buzzerpin,HIGH);
    delay(70);    
  }
  else
  {
    lcd.print("  Dist > 30 cm  ");
  }

}


งานครั้งที่ 5 ในสถานที่ฝึกงานของ นศ ใช้ระบบควบคุณภาพอย่างไร

มาตรฐาน ISO 9001 ISO 9001 เป็นมาตรฐานสากลที่องค์กรธุรกิจทั่วโลกให้ความสำคัญ เพื่อความเป็นเลิศทางด้านคุณภาพ และความมีประสิทธิภาพของการด...