บทความ

ใบงานทดลองครั้งที่ 8 Buzzer+Keypadส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ

รูปภาพ
ใบงานทดลองครั้งที่ 8 #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);     t...

ใบงานทดลองครั้งที่ 10 LDR แสดงผลด้วย LCD ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ

รูปภาพ
ใบงานทดลองครั้งที่ 10 #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; }    เมื่อวงจรทำงาน เราสามารถปรับค่า LDR หรือ ตัวต้านทานเปลี่ยนค่าตามแสง ให้ค่าตรงตามที่ต้องการ ซึ่งในวงจรนี้คือให้ ค่าLDR(tempaVal) ไม่เท่ากับ 0 จะทำให้หน้าจอ LCD ขึ้นคำว่า LDR ซึงสามารถตรวจสอบได้โดยโค้ดนี้   #include <LiquidCrystal_I2C.h>   LiquidCrystal_I2C lcd(0x27,16,2);   int aVal=0,tempaVal=0;   void setup() {     lc...

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 10 (Arduino วัดอุณหภูมิ)

รูปภาพ
การใช้ Arduino วัดอุณหภูมิและความชื้นด้วย DHT11    DHT11 เป็นเซ็นเซอร์ที่ใช้วัดอุณหภูมิเป็นองศาเซลเซียล และองศาฟาเรนไฮ ยังสามารถวัดความชื้นได้อีกด้วย มีไลบารี่พร้อมใช่งานกับ Arduino สามารถใช้วัดค่าได้เที่ยงตรงกว่า NTC หรือ PTC มาก เพราะให้เอาต์พุตออกมาในรูปของดิจิตอล ใช้วัดอุณหภูมิอากาศโดยรอบ ลำดับขาใช้งาน 1VCC 2 DATA 3 NC 4 GND สำหรับlibraryดาว์โหลดได้จากลิ้ง   https://github.com/adafruit/DHT-sensor-library   โค้ด #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); float f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } float hi = dht.computeHeatIndex(f, h); Serial.print("Humidity: "); Serial.print(h); Serial.pri...

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 9 (LCD+2motor)

รูปภาพ
LCD+Motor 2 ตัว #include <LiquidCrystal.h>   //หัวโปรแกรมประกาศตัวLiquidCrystalหรือLCDให้สามารถใช้งานได้ LiquidCrystal lcd(12,11,5,4,3,2); void setup() {  lcd.begin(16,2);   pinMode(0,INPUT);   pinMode(1,INPUT);   pinMode(6,OUTPUT);   pinMode(7,OUTPUT); } void loop() {   int fire=digitalRead(1);  //ตั้งตัวแปร fire เท่ากับdigitalReadขาที่1   int cool=digitalRead(0); //ตั้งตัวแปร cool เท่ากับdigitalReadขาที่0   if (fire==0){            //ถ้าfireเป็น0   lcd.setCursor(0,1);          lcd.print("Motor 1");   //เขียนคำว่าMotor1บนLCD   digitalWrite(6,HIGH) ;  //ให้ขา6เป็นHIGHหรือทำให้มอเตอร์หมุน     delay(300);   digitalWrite(6,LOW) ; //ให้ขา6เป็นLOWหรือทำให้มอเตอร์หยุดหมุน    lcd.setCursor(0,1);   lcd.print("         ");      ...

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 8 (7SEC+2Botton)

รูปภาพ
void setup()  { pinMode(1, OUTPUT);       pinMode(2, OUTPUT);  pinMode(3, OUTPUT);       pinMode(4, OUTPUT); pinMode(5, OUTPUT);       pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(10, INPUT);  pinMode(11, INPUT); } void a0 (){                      //สร้างฟังชั่นขึ้นเองเป็น a0 ทำงานตามวงเล็บ     digitalWrite(7, LOW);       digitalWrite(6, HIGH);      digitalWrite(5, HIGH);      digitalWrite(4, HIGH);     digitalWrite(3, HIGH);      digitalWrite(2, HIGH);      digitalWrite(1, HIGH);  } void a1(){                       //สร้างฟังชั่นขึ้นเองเป็น a1 ทำงานตามวงเล็บ     digitalWrite(7, LOW);       digitalWrite(6, LOW)...

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 7 (7SEC LED+voidสร้างเอง)

รูปภาพ
void setup() { pinMode(13, OUTPUT);      pinMode(12, OUTPUT); pinMode(11, OUTPUT);      pinMode(10, OUTPUT); pinMode(9, OUTPUT);      pinMode(8, OUTPUT); pinMode(7, OUTPUT); } void 0a (){                        //สร้างฟังชั่นขึ้นเองเป็น 0a ทำงานตามวงเล็บ  digitalWrite(13, LOW);  digitalWrite(12, LOW);  digitalWrite(11, LOW);  digitalWrite(10, LOW);  digitalWrite(9, LOW);  digitalWrite(8,LOW);  digitalWrite(7, HIGH); } void 1a (){                        //สร้างฟังชั่นขึ้นเองเป็น 1a ทำงานตามวงเล็บ            digitalWrite(13,  HIGH); digitalWrite(12, LOW); digitalWrite(11, LOW); digitalWrite(10, HIGH); digitalWrite(9, HIGH); digitalWrite(8,HIGH); digitalWrite(7, HIGH); } void 2a(){            ...

ส่วนประกอบงานวิชา การเขียนโปรแกรมคอมฯ ครั้งที่ 6 (LCDเริ่มต้น)

รูปภาพ
#include <LiquidCrystal.h> //หัวโปรแกรมประกาศตัวLiquidCrystalหรือLCDให้สามารถใช้งานได้ LiquidCrystal lcd(12,11,4,5,6,7); void setup() { } void loop (){    lcd.begin(16,2) ;   lcd.print("PHICHIT");  //เขียนข้อความว่า PHICHIT  lcd.setCursor(0,1);  lcd.print("  "); }        เมื่อไมโครคอนโทรเลอร์เริ่มทำงาน หน้าจอจะแสดงภาพคือ แถวที่1(16,2)จะแสดงคำว่า PHICHIT และแถวถัดมา(0,1)จะไม่แสดงอะไรเลย