วันอาทิตย์ที่ 30 กันยายน พ.ศ. 2561

งานแก้ข้อสอบ

Hardware
แยกในส่วนของ Hardware



Arduino UNO
โมดูลบลูทู ธ HC - 05
ตัวต้านทาน 10 KΩ
ตัวต้านทาน 20 KΩ
ตัวต้านทาน 1 KΩ X 4
โมดูลรีเลย์ 4 แชนแนล 12V
แหล่งจ่ายไฟ 12 V
สมาร์ทโฟนหรือแท็บเล็ต (เปิดใช้งาน Bluetooth)
Relay
Load


input
โมดูลบลูทู ธ HC - 05

output
Load
สมาร์ทโฟนหรือแท็บเล็ต (เปิดใช้งาน Bluetooth)


Software

#include <SoftwareSerial.h> เอาข้อมูลจาก Linbrary SoftwareSerial
const int rxPin = 4; rxPin ขา4
const int txPin = 2; rxpin ขา2 

SoftwareSerial mySerial(rxPin, txPin);

const int Loads[] = {9, 10, 11, 12};

int state = 0;
int flag = 0;

void setup()
{
   for (int i=0;i<4;i++)
    {
      pinMode(Loads[i], OUTPUT);
    }
   mySerial.begin(9600);
   for (int i=0;i<4;i++)
    {
      digitalWrite(Loads[i], LOW);
    }
 
}

void loop()
{
   
    if(mySerial.available() > 0)
    {
      state = mySerial.read();
      flag=0;
    }
   
    switch(state)
    {

ฟังชั่นพิเศษ 
      case '0':digitalWrite(Loads[0], HIGH);
               flag=1;
               break;
      case '1':digitalWrite(Loads[0], LOW);
               flag=1;
               break;
      case '2':digitalWrite(Loads[1], HIGH);
               flag=1;
               break;
      case '3':digitalWrite(Loads[1], LOW);
               flag=1;
               break;
      case '4':digitalWrite(Loads[2], HIGH);
               flag=1;
               break;
      case '5':digitalWrite(Loads[2], LOW);
               flag=1;
               break;
      case '6':digitalWrite(Loads[3], HIGH);
               flag=1;
               break;
      case '7':digitalWrite(Loads[3], LOW);
               flag=1;
               break;
      case '8':digitalWrite(Loads[0], LOW);
               digitalWrite(Loads[1], LOW);
               digitalWrite(Loads[2], LOW);
               digitalWrite(Loads[3], LOW);
               flag=1;
               break;
     }
}



FlowChart

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

Mini project PIR & MQ-2

Mini project PIR & MQ-2






หลักการทำงาน
เมื่อมีกลุ่มควัน ก๊าซ แก๊ส มาโดนบริเวณ Sensor จะมีการส่งสัญญาณ analog ไปยัง Arduino หากมีความหนาแน่นของ ก๊าซ แก๊ส ควัน ก็จะมีค่า analog ที่สูงขึ้นส่งไปยัง Arduino เมื่อ Arduino ประตูก็จะทำงาน เมิ่อไม่มีควันแต่มีการเคลือนไหวประตูก็จะเปิดโดยผ่าน PIR Sensor และจะปิดเมื่อไม่มีสิ่งเคลื่อนไหว แต่ถ้าเกิดไฟไหม้หรือมีควันมากเกินไปประตูก็จะเปิด ส่วนมาก เหมาะสำหรับในห้องครัวหรือในบ้าน


Code
int PIR = analogRead(A1);    //ประกาศตัวแปร และให้เก็บค่าอะนาลอก ที่ขา A1 ไว้
  int Smok = analogRead(A2); //ประกาศตัวแปร แล้วให้เก็บค่าอะนาลอกที่ขา A2 ไว้


void setup() {

  Serial.begin(9600);    //ตั้งค่าเริ่มต้น
}


void loop() {

  Serial.print("PIR = "); Serial.print(PIR);    Serial.print(  "    Smok =  ");                           Serial.println(Smok);     //    ให้แสดงค่า PIR และ Smok ที่จอมอนิเตอร์                           
  delay(1);       //     ดีเลย์ไว้ 0.001 วิ
  if(Smok >= 100 || PIR >= 500){  //ถ้าSmokมากกว่าหรือเท่ากับ 100 หรือ PIR มากว่าหรือเท่ากับ 500 ให้ทำเงื่อนไข
      analogWrite(A4, 0);     //สั่งให้ขาอะนาลอก A4 มีค่าเท่ากับ 0
      analogWrite(A5, 255); สั่งให้ขาอะนาลอก A5 ทีค่าเท่ากับ 255
      delay(1800);   ดีเลย์ไว้ 1.8 วิ
      analogWrite(A4, 255);   สั่งให้ อะนาลอก A4 มัค่าเท่ากับ 255
      analogWrite(A5, 0);  สั่ให้ขา อะนาลอก A5 มีค่าเท่ากับ 0
      delay(2000);  ดีเลย์ไว้ 2 วิ
      
  }
  
  delay(10);
}

Cilp Review







วันจันทร์ที่ 17 กันยายน พ.ศ. 2561

โครงงาน ชุดเปลี่ยนสีหลอดไฟ LED RGB แสดงผลผ่าน LCD

หลักการและเหตุผล

ในปัจจุบันความก้าวหน้าอย่างรวดเร็วของเทคโนโลยีเซมิคอนดัคเตอร์ทำให้เทคโนโลยีของ LED มีความก้าวหน้าอย่างรวดเร็วตามไปด้วย LED ได้ถูกพัฒนาขึ้นมาเรื่อย ๆ ทั้งในด้านสีของแสงที่เปล่งออกมาไม่ว่าจะเป็นสีแดง,สีเขียว, สีส้ม หรือสีที่ผลิตได้ท้ายสุด และทำให้วงการแอลอีดีพัฒนาขึ้นอย่างรวดเร็ว คือ สีน้ำเงิน ซึ่งการเกิดขึ้นของสีน้ำเงินนี้ ทำให้ครบแม่สี 3 สี คือ สีแดง สีเขียว และสีน้ำเงิน จนเกิดเป็นจุดเริ่มต้นของจอแอลอีดี และแอลอีดีในงานประดับไฟต่างๆ และยังใช้ประโยชน์แพร่หลายมากขึ้นเรื่อย ๆ เช่น ในเครื่องคิดเลข สัญญาณจราจร ไฟท้ายรถยนต์ ป้ายสัญญาณต่าง ๆ เป็นต้น ในการทำโครงงานครั้งนี้ผู้จัดทำได้นำไปประยุกต์ใช้ในการทำโคมไฟ ซึ่งโคมไฟชิ้นนี้สามารถปรับเป็นสีต่างๆ ได้ตามที่ผู้ใช้ต้องการ และชิ้นงานนี้สามารถนำไปประยุกต์ใช้ในชีวิตประจำวันได้อีกมากมายเพื่อเพิ่มความสวยงามในยามค่ำคืนได้อีกด้วย ทางผู้จัดทำคิดว่าโครงงานชิ้นนี้น่าจะมีประโยชน์จึงได้มีการจัดทำโครงงานนี้ขึ้น

คุณสมบัติการทำงานของโครงงาน

  • สามารถเลือกใช้สีได้ 7 สี ตามต้องการ
  • สวิตซ์แต่ละตัวจะควบคุมสีแต่ละสี เช่น สีแดง,สีน้ำเงิน และ สีเขียว เป็นต้น
  • มีการบอกสถานะว่าสีอะไรที่ติดอยู่

โปรเจค Arduino เครื่องตรวจจับควัน MQ-2

ปรเจค Arduino เครื่องตรวจจับควัน MQ-2
โปรเจคนี้เป็นการอธิบายการทำงานของ Sensor MQ-2 ซึ่งเอาไว้ตรวจจับควันกลุ่มควัน และยังสามารถตรวจจับ แก๊สได้หลากหลายชนิดอีกด้วย สามารถนำไปประยุคต์ใช้งานในการตรวจจับควันจากการเผ่าไหมไฟไหม้บ้าน เป็นต้น
MQ-2 สามารถตรวจจับแก๊สได้หลากหลายชนิด ตรวจจับได้ดีที่สุดคือ ก๊าซติดไฟ 
  • LPG
  • Butane
  • Propane
  • Methane
  • Alcohol
  • Hydrogen
หลักการทำงานของโปรเจคนี้ คือ
เมื่อมีกลุ่มควัน ก๊าซ แก๊ส มาโดนบริเวณ Sensor จะมีการส่งสัญญาณ analog ไปยัง Arduino หากมีความหนาแน่นของ ก๊าซ แก๊ส ควัน ก็จะมีค่า analog ที่สูงขึ้นส่งไปยัง Arduino เมื่อ Arduino รับสัญญาณจาก Sensor หากยังไม่สูงพอ (ที่ตั้งไว้ 400) หากต่ำกว่า ค่าที่ตั้งไว้ไฟสีเขียวจะสว่าง ในทางกลับกันหากมีกลุ่มควัน แก๊ส ก๊าซ มีความหนาขึ้นสูงกว่า ค่าที่ตั้งไว้ ไฟสีแดงจะสว่างเพื่อเตือน ว่าไม่ปลอดภัยแล้วน๊ะ หลักการง่ายนิดเดียวมาเริ่มกันเลย
อุปกรณ์ประกอบด้วย
  • Arduino Uno R3
  • Sensor MQ-2
  • หลอดไฟ LED สีเขียว แดง
  • ตัวต้านทาน ค่าความต้านทานที่ 220 Ohm
  • บอร์ดทดลอง
  • สายไฟ ชนิด Male to Male และ Male to Female อย่างละ 10 เส้น
การต่อวงจรดังต่อไปนี้
โปรแกรม Code Arduino
int LedRED = 12;
int LEDgreen = 11;
int smokeA0 = A0;
int sensorThres = 400;  //ตั้ง ค่าความหนาของตวัน แก๊ส ก๊าซที่ 400
void setup() {
  Serial.begin(9600);
  pinMode(LedRED, OUTPUT);
  pinMode(LEDgreen, OUTPUT);
  pinMode(smokeA0, INPUT);
}
void loop() {
  int analogSensor = analogRead(smokeA0);
  Serial.print("Pin A0: ");
  Serial.println(analogSensor); 
  if (analogSensor > sensorThres)  {
    digitalWrite(LedRED, HIGH);
    digitalWrite(LEDgreen, LOW);
  }
  else  {
    digitalWrite(LedRED, LOW);
    digitalWrite(LEDgreen, HIGH);
  }
  delay(100);
}

งานปฏิบัติ 15




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

งานปฏิบัติ 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);

}

งานปฏิบัติ 13



Code

#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


Code

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int aval,temp_aval=0;
void setup() 
{
  lcd.begin();
  lcd.setCursor(0,0);
  lcd.print("aval = ");
}
void loop() 
{
   aval = analogRead(A0);
   if (temp_aval != aval)
   {
      lcd.setCursor(7,0);
      lcd.print("    ");
   }
   lcd.setCursor(7,0);
   lcd.print(aval);
   temp_aval = aval;
   delay(300);
}

งานปฏิบัติ 11


Code


#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
int aVal=0,tempaVal=0;
void setup()
{
  lcd.begin();
}
void loop() 
{
  aVal = analogRead(A0);

  if (tempaVal != aVal)
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("LDR");
    lcd.setCursor(0,1);
    lcd.print(aVal);
    delay(300);
  }
  tempaVal = aVal;
}

งานปฏิบัติ 10

                                                                   LDR



Code

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int aVal=0,tempaVal=0;
void setup()
{
  lcd.begin();
}
void loop()
{
  aVal = analogRead(A0);

  if (tempaVal != aVal)
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("LDR");
    lcd.setCursor(0,1);
    lcd.print(aVal);
    delay(300);
  }
  tempaVal = aVal;
}

งานปฎิบัติ 9


                                                      keypad&buzzer






Code

#include "LedControl.h"
#include "Keypad.h"
#define C4  262
#define D4  294
#define E4  330
#define F4  349
#define G4  392
#define A4  440
#define B4  494
#define C5  523
char keys[4][4]={
  {7,8,9,0},
  {4,5,6,0},
  {1,2,3,0},
  {0,0,0,0}};
byte rowPins[] = {7,6,5,4};
byte colPins[] = {3,2,1,0};
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins,4,4);
int melody[] = {C4,D4,E4,F4,G4,A4,B4,C5};
int dl = 300;
int buzzerpin = 11;
LedControl lc=LedControl(8,10,9,1);
// Pin 8->DIN, 10->CLK, 9->CS(LOAD), 1 = No.of devices
void setup()
{
  lc.shutdown(0,false);
  lc.setIntensity(0,5);
  lc.clearDisplay(0);
  pinMode(buzzerpin,OUTPUT);
  digitalWrite(buzzerpin,HIGH);
}
void loop()
{
  char key = keypad.getKey();
  if ((key != NO_KEY) && (key < 9))
  {
    lc.setDigit(0,0,key,false);
    tone(buzzerpin, melody[key-1],dl);
    delay(dl);
    digitalWrite(buzzerpin,HIGH);
  }
}

งานปฏิบัติ 8

BUZZER





Code
#include "LedControl.h"
#define C4  262
#define D4  294
#define E4  330
#define F4  349
#define G4  392
#define A4  440
#define B4  494
#define C5  523
int melody[] = {C4,D4,E4,F4,G4,A4,B4,C5};
float beats[] ={1,1,1,1,1,1,1,1};
int buzzerpin = 11;
int timestop = 70;
LedControl lc=LedControl(8,10,9,1);
// Pin 8->DIN, 10->CLK, 9->CS(LOAD), 1 = No.of devices
void setup()
{
  lc.shutdown(0,false); 
  lc.setIntensity(0,5);
  lc.clearDisplay(0);
  int dl = 500;
  pinMode(buzzerpin,OUTPUT);
  int numnote;
  numnote = sizeof(melody)/2; 
  for (int i=0;i<numnote;i++)
  {
    lc.setChar(0,7-i,'-',false);
    tone(buzzerpin, melody[i],dl*beats[i]);
    delay(dl*beats[i]);
    digitalWrite(buzzerpin,HIGH);
    delay(timestop);
  }
}
void loop()
{
}

งานปฏิบัติ 7

                                                 keypad







Code

#INCLUDE "LEDCONTROL.H"
#INCLUDE "KEYPAD.H"
CHAR KEYS[4][4]={
  {'7','8','9','A'},
  {'4','5','6','B'},
  {'1','2','3','C'},
  {'E','0','F','D'}};
BYTE ROWPINS[] = {7,6,5,4};
BYTE COLPINS[] = {3,2,1,0};
KEYPAD KEYPAD = KEYPAD(MAKEKEYMAP(KEYS),ROWPINS,COLPINS,4,4);
LEDCONTROL LC=LEDCONTROL(8,10,9,1); 
// PIN 8->DIN, 10->CLK, 9->CS(LOAD), 1 = NO.OF DEVICES
VOID SETUP() 
{
  LC.SHUTDOWN(0,FALSE);  
  LC.SETINTENSITY(0,5); 
  LC.CLEARDISPLAY(0);      
}
VOID LOOP() 
{
  CHAR KEY = KEYPAD.GETKEY();
  IF (KEY != NO_KEY)
  {
    LC.SETCHAR(0,0,KEY,FALSE);
  }
}

งานปฏิบัติ 6


                                    กดสวิตกลับทางมอเตอร์ แสดงจอ LCD







Code

#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int BS1=0;
int BS2=0;
void setup() {
  pinMode(1,OUTPUT);
  pinMode(0,OUTPUT);
  pinMode(13,OUTPUT);
  pinMode(7,INPUT);
  pinMode(6,INPUT);
  lcd.begin(16, 2);
}
void loop() {
  BS1 = digitalRead(6);
  BS2 = digitalRead(7);
  if(BS1==LOW){
    digitalWrite(1,HIGH);
    digitalWrite(0,LOW);
    lcd.setCursor(7,1);
    lcd.print("RIGHT");
}
else if (BS2==LOW){
  digitalWrite(1,LOW);
  digitalWrite(0,HIGH);
  lcd.setCursor(7,1);
  lcd.print("LEFT");
}
else{
  digitalWrite(13,HIGH);
  delay(100);
  digitalWrite(13,LOW);
  delay(100);
  digitalWrite(1,LOW);
  digitalWrite(0,LOW);
  lcd.setCursor(7,1);
  lcd.print("STOP");
}
}










Code

#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int BS1=0;
int BS2=0;
void setup() {
  pinMode(1,OUTPUT);
  pinMode(0,OUTPUT);
  pinMode(13,OUTPUT);
  pinMode(7,INPUT);
  pinMode(6,INPUT);
  lcd.begin(16, 2);
}
void loop() {
  BS1 = digitalRead(6);
  BS2 = digitalRead(7);
  if(BS1==LOW){
    digitalWrite(1,HIGH);
    digitalWrite(0,LOW);
    lcd.setCursor(7,1);
    lcd.print("RIGHT");
}
else if (BS2==LOW){
  digitalWrite(1,LOW);
  digitalWrite(0,HIGH);
  lcd.setCursor(7,1);
  lcd.print("LEFT");
}
else{
  digitalWrite(13,HIGH);
  delay(100);
  digitalWrite(13,LOW);
  delay(100);
  digitalWrite(1,LOW);
  digitalWrite(0,LOW);
  lcd.setCursor(7,1);
  lcd.print("STOP");
}
}






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

Quality Assurance (QA) กับ Quality Control (QC) QC (Quality Control) หมายถึง  การควบคุมคุณภาพสินค้าให้เป็นไปตามคุณสมบัติที่กำหนดไว้  และส...