วันจันทร์ที่ 31 ธันวาคม พ.ศ. 2561

ตัวอย่างงานที่ใช้โปรแกรม Arduino

การใช้งาน 3-axis Accelerometer Module 





งานทฤษฎี สปที่11

#include <AcceleroMMA7361.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
AcceleroMMA7361 accelero;
int x;
int y;
int z;
void setup()
{
  lcd.begin(16, 2); 
  Serial.begin(9600);
  accelero.begin(13, 12, 11, 10, A0, A1, A2);
  accelero.setARefVoltage(3.3);  //sets the AREF voltage to 3.3V
  accelero.setSensitivity(LOW);  //sets the sensitivity to +/-6G
  accelero.calibrate();
  lcd.setCursor(0,0);
  lcd.print("X: ");
  lcd.setCursor(8,0);
  lcd.print("Y: ");
  lcd.setCursor(0,1);
  lcd.print("Z: ");
}
void loop()
{
  x = accelero.getXRaw();
  lcd.setCursor(3,0);
  lcd.print(x);
  y = accelero.getYRaw();
  lcd.setCursor(11,0);
  lcd.print(y);
  z = accelero.getZRaw();
  lcd.setCursor(3,1);
  lcd.print(z);
  Serial.print("nx: ");
  Serial.print(x);
  Serial.print("ty: ");
  Serial.print(y);
  Serial.print("tz: ");
  Serial.print(z);
  delay(500);                                  
}

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

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


โปรแกรม


#include <LedControl.h>
LedControl lc=LedControl (5,7,6,1);
 void show4digit (int num)
{
  int seg1,seg2,seg3,seg4;
  seg1 = ((num%1000)%100)%10;
  seg2 = ((num%1000)%100)/10;
  seg3 = (num%1000)/100;
  seg4 = num/1000;
   lc.setDigit (0,0,seg1,false);
   if (num>=10)
   lc.setDigit(0,1,seg2,false);
   if (num>=100)
   lc.setDigit(0,2,seg3,false);
   if (num>=1000)
   lc.setDigit(0,3,seg4,false);
   delay(300); 
}
  void setup()
{
  Serial.begin(9600);
  lc.shutdown(0,false);
  lc.setIntensity(0,5);
  lc.clearDisplay(0);
}
  void loop()
{
  int num;
  num = analogRead(A0);
  Serial.print("analogRead=") ;Serial.println(num);
  lc.clearDisplay(0);
  show4digit(num);

อธิบายการทำงาน
 เมื่อปรับค่าตัวต้านทานตัวเลขจะเพิ่มขึ้นหรือลดลงตามการปรับตัวต้านทาน
งานปฏิบัติที่1


โปรแกรม

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() 
 {
 pinMode (0, INPUT);
 pinMode (1, INPUT);
 pinMode (8, OUTPUT);
 pinMode (9, OUTPUT);
 lcd.begin(16, 2);
 }

void loop() 
  {
  int re=digitalRead (0);
  int le=digitalRead (1);
  if (re==0)
  { digitalWrite (8, HIGH);
  delay(500);
  lcd.setCursor(0, 1);
  lcd. print(" Motor1 ");
  digitalWrite (8, LOW);
  }
  if  (le==0){
    digitalWrite (9, HIGH);
    delay (500);
    lcd.setCursor (0, 1);
    lcd.print (" Motor2 ");
  }
}

อธิบายการทำงาน
เมื่อเรากดสวิตซ์ที่1 LCD จะขึ้นคำว่า Motor1 และ ถ้ากด สวิตซ์ที่2 LCD จะขึ้นคำว่า Motor2 หากกดค้างทั้งสองสวิตซ์จะขึ้น Motor1 Motor2 สลับกัน

วันเสาร์ที่ 22 ธันวาคม พ.ศ. 2561

                                       ตัวอย่างงานที่ใช้โปรแกรม Arduino

                                                การใช้งาน Android ควบคุม Relay ผ่าน Bluetooth HC-05 




งานทฤษฎี สปที่10
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //Pin10 RX , Pin 11 TX connected to–> Bluetooth TX,RX
#define relay1 2
#define relay2 3
#define relay3 4
#define relay4 5
char val;
void setup() {
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(relay4,OUTPUT);
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
digitalWrite(relay3,HIGH);
digitalWrite(relay4,HIGH);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop() {
if( mySerial.available() >0 ) {
val = mySerial.read();
Serial.println(val);

}
if( val == ‘1’ ) {
digitalWrite(relay1,LOW); }
else if( val == ‘2’ ) {
digitalWrite(relay2,LOW); }
else if( val == ‘3’ ) {
digitalWrite(relay3,LOW); }
else if( val == ‘4’ ) {
digitalWrite(relay4,LOW); }
else if( val == ‘9’ ) {
digitalWrite(relay1,LOW);
digitalWrite(relay2,LOW);
digitalWrite(relay3,LOW);
digitalWrite(relay4,LOW);
}
else if( val == ‘A’ ) {
digitalWrite(relay1,HIGH); }
else if( val == ‘B’ ) {
digitalWrite(relay2,HIGH); }
else if( val == ‘C’ ) {
digitalWrite(relay3,HIGH); }
else if( val == ‘D’ ) {
digitalWrite(relay4,HIGH); }
else if( val == ‘I’ ) {
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
digitalWrite(relay3,HIGH);
digitalWrite(relay4,HIGH);
}
                 ตัวอย่างงานที่ใช้โปรแกรม Arduinoเพิ่มเติมวันที่ 20/12/61

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




int LedRED = 12;
int LEDgreen = 11;
int smokeA0 = A0;
int sensorThres = 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);
}

วันอังคารที่ 4 ธันวาคม พ.ศ. 2561

ตัวอย่างงานที่ใช้โปรแกรม Arduino

การใช้งาน Arduino รับค่า MQ-3 alcohol sensor





งานทฤษฎี สปที่9

const int AOUTpin=0;
const int DOUTpin=8;
const int ledPin=13;
int limit;
int value;
void setup() {
Serial.begin(115200);
pinMode(DOUTpin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop()
{
value= analogRead(AOUTpin);
limit= digitalRead(DOUTpin);
Serial.print(“Alcohol value: “);
Serial.println(value);
Serial.print(“Limit: “);
Serial.print(limit);
delay(100);
if (limit == HIGH){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
}


ตัวอย่างงานที่ใช้โปรแกรม Arduino

Arduino ควบคุมการทำงาน Relay




งานทฤษฎี สปที่8

#define RELAY1 7 
 #define RELAY2 6 
 #define RELAY3 5
 #define RELAY4 4 

void setup()
 {
 pinMode(RELAY1, OUTPUT); 
 pinMode(RELAY2, OUTPUT); 
 pinMode(RELAY3, OUTPUT); 
 pinMode(RELAY4, OUTPUT); 
 }

void loop()
 {
 digitalWrite(RELAY1,LOW); 
 delay(5000); // Wait for 5 seconds
 digitalWrite(RELAY1,HIGH); 

digitalWrite(RELAY2,LOW); 
 delay(5000); // Wait for 5 seconds
 digitalWrite(RELAY2,HIGH);

digitalWrite(RELAY3,LOW); 
 delay(5000); // Wait for 5 seconds
 digitalWrite(RELAY3,HIGH); 

digitalWrite(RELAY4,LOW); 
 delay(5000); // Wait for 5 seconds
 digitalWrite(RELAY4,HIGH); 
 }

ตัวอย่างงานที่ใช้โปรแกรม Arduino

ตรวจจับระยะทางด้วย Ultrasonic Sensor HC-SR04







งานทฤษฎี สปที่7

void setup(){
pinMode(TriggerPin,OUTPUT); 
pinMode(EchoPin,INPUT); 
Serial.begin(9600); 
}
void loop(){
digitalWrite(TriggerPin, LOW);
delayMicroseconds(2);
digitalWrite(TriggerPin, HIGH); 
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW); 
Duration = pulseIn(EchoPin,HIGH); 
// returns the Duration in microseconds
long Distance_mm = Distance(Duration); 
Serial.print(“Distance = “); 
Serial.print(Distance_mm);
Serial.println(” mm”);
delay(1000); 
}
long Distance(long time)
{
long DistanceCalc;
DistanceCalc = ((time /2.9) / 2);
//DistanceCalc = time / 74 / 2; 
return DistanceCalc; 
}

ตัวอย่างงานที่ใช้โปรแกรม Arduino

การใช้งาน 3-axis Accelerometer Module (MMA7361) กับ Arduino




งานทฤษฎี สปที่6

//Programa : Conectando Acelerômetro 3 Eixos MMA7361 no Arduino
//Autor : FILIPEFLOP
#include <AcceleroMMA7361.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
AcceleroMMA7361 accelero;
int x;
int y;
int z;
void setup()
{
  lcd.begin(16, 2); 
  Serial.begin(9600);
  accelero.begin(13, 12, 11, 10, A0, A1, A2);
  accelero.setARefVoltage(3.3);  //sets the AREF voltage to 3.3V
  accelero.setSensitivity(LOW);  //sets the sensitivity to +/-6G
  accelero.calibrate();
  lcd.setCursor(0,0);
  lcd.print("X: ");
  lcd.setCursor(8,0);
  lcd.print("Y: ");
  lcd.setCursor(0,1);
  lcd.print("Z: ");
}
void loop()
{
  x = accelero.getXRaw();
  lcd.setCursor(3,0);
  lcd.print(x);
  y = accelero.getYRaw();
  lcd.setCursor(11,0);
  lcd.print(y);
  z = accelero.getZRaw();
  lcd.setCursor(3,1);
  lcd.print(z);
  Serial.print("nx: ");
  Serial.print(x);
  Serial.print("ty: ");
  Serial.print(y);
  Serial.print("tz: ");
  Serial.print(z);
  delay(500);                                  
}
                          ตัวอย่างงานที่ใช้โปรแกรม Arduino

                                                    การใช้ Flex sensor สั่งงาน Servo




งานทฤษฎี สปที่5

#include <Servo.h>
Servo servo1;
const int flexPin = A0;

void setup()

{
Serial.begin(9600);

servo1.attach(9);

}
void loop()
{
int flexPosition;
int servoPosition;
flexPosition = analogRead(flexPin);
servoPosition = map(flexPosition, 600, 900, 0, 180);
servoPosition = constrain(servoPosition, 0, 180);
servo1.write(servoPosition);
Serial.print(“sensor: “);
Serial.print(flexPosition);
Serial.print(” servo: “);
Serial.println(servoPosition);
delay(20);
}

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

ตัวอย่างงานที่ใช้โปรแกรม Arduino

เซ็นเซอร์วัดแสง LDR ร่วมกับ Arduino





งานทฤษฎี สปที่4

int pin = A0; //กำหนดพินที่ต่อ
int val = 0; //กำหนดค่าตั้งต้นของผลลัพธ์

void setup(){
 Serial.begin(9600); //กำหนดความเร็วของซีเรียล
}

void loop(){   //ลูป
  val = analogRead(pin); //ใช้ฟังก์ชั่นอ่านค่าอนาล็อกตามพินที่กำหนดไว้
  Serial.println(val); //ส่งค่าผ่านทางซีเรียลโดยใช้คำสั่ง println
  delay(300);  //ตั้งค่าดีเลย์ไว้ที่ 0.3sec
}


LDR คือ  ความต้านทานชนิดที่ไวต่อแสง ตัวความต้านทานนี้สามารถเปลี่ยนสภาพทางความนำไฟฟ้า ได้เมื่อมีแสงมาตกกระทบ บางครั้งเรียกว่าโฟโตรีซีสเตอร์ Photo  Resistor หรือ โฟโตคอนดัคเตอร์ Photo Conductor เป็นตัวต้านทานที่ทำมาจากสารกึ่งตัวนำ