บทความ

กำลังแสดงโพสต์จาก กุมภาพันธ์, 2019

การควบคุมทิศทางมอเตอร์

รูปภาพ
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')           ...

การใช้งาน Arduino กับ Module 433Mhz Wireless RF Transmitter and Receiver Module

รูปภาพ
#include < RH_ASK.h > #include < SPI.h >  RH_ASK driver; void setup() {     Serial.begin(9600);     if (!driver.init())          Serial.println("init failed"); } void loop() {     uint8_t buf[12];     uint8_t buflen = sizeof(buf);     if (driver.recv(buf, &buflen))      {       int i;       // รับข้อความแล้วนำมาแสดง        Serial.print("Message: ");       Serial.println((char*)buf);          //ตัวแปรที่นำข้อความมาแสดง     } } Module 433Mhz Wireless RF Transmitter and Receiver Module  ในหนึ่งชุดประกอบด้วย ภาครับและภาคส่ง ใช้สำหรับส่งข้อมูลไร้สาย โดยผ่านความถี่วิทยุ 433 MHz หรือ ความถี่วิทยุ 315 Mhz  Module 433Mhz Wireless RF Transmitter and Receiver Module  เป็นที่นิยม มากเนื่องจากราคาถูก ราคาหลักสิบบาท ใช้งานได้ง่าย มี Libraries พร้อมใช้งาน ท...

มอนิเตอร์อุณหภูมิออนไลน์ด้วย ESP8266 และ DHT11

รูปภาพ
ESP8266 เป็นโมดูลรับ-ส่งข้อมูลไร้สายผ่าน WiFI ที่สามารถเขียนโปรแกรมสั่งงานลงไปได้ ในบทความนี้เราก็จะมาลองเขียนโปรแกรม สร้าง Web Server ง่ายๆ ที่ใช้สำหรับแสดงค่าอุณหภูมิบนเว็บกันครับ #include "DHT.h" #include "ESP8266WiFi.h" #include "WiFiClient.h" #include "ESP8266WebServer.h" #include "ESP8266mDNS.h" #define DHTPIN D0 #define DHTTYPE DHT11 const char * ssid = "..." ; const char * password = "..." ; // HTML Page String IndexPage = "<!DOCTYPE HTML>\n" "<html>\n" "<head>\n" "<meta charset=\"utf-8\">\n" "<title>ESP-DHT By IOXhop</title>\n" "<script>\n" "function loadXMLDoc() {\n" "  var xmlhttp;\n" "  if (window.XMLHttpRequest) { \n" "    xmlhttp=new XMLHttpRequest();\n" "  } else { \n" "    xmlhttp=new ActiveXObject(\"Microso...

ทำป้ายตัวอักษรวิ่งด้วย LED Dot Matrix 16x16 โดยส่งข้อมูลผ่าน Serial Communication

รูปภาพ
4HC595 เป็นตัวเลื่อนบิตขนาด 8 บิต (8-bit Shift Register) โดยรับข้อมูลเข้าและส่งออกที่ละบิต (Serial-In & Serial-Out) และมีเอาต์พุตแบบ 8 บิต (Parallel Data Output) ถ้าต้องการจะส่งข้อมูลไปกำหนดสถานะลอจิกให้ขาเอาต์พุตทั้ง 8 ขา (Q0…Q7) จะต้องใช้วิธีเลื่อนบิตทีละบิตเข้าทางอินพุต DS และสร้างสัญญาณ Clock ป้อนเข้าที่ขา SHCP เพื่อกำหนดจังหวะในการทำงานและสามารถเลือกใช้ความถี่ของสัญญาณอินพุต SHCP ได้เกินกว่า 10 MHz การเลื่อนบิตหนึ่งครั้ง ดังนั้นจึงต้องใช้ทั้งหมด 8 ไซเคิล ถ้าเลื่อนมากกว่า 8 ไซเคิล ข้อมูลในรีจิสเตอร์จะถูกส่งออกตามลำดับที่ขา Q7S            การเลื่อนบิตเพื่อส่งข้อมูลจะส่งแบบ MSB First เมื่อข้อมูลถูกนำไปใส่ไว้ในรีจิสเตอร์ภายในจนครบ 8 บิตแล้ว และต้องการให้ขาเอาต์พุต Q0..Q7 มีสถานะลอจิกตรงตามข้อมูลในรีจิสเตอร์ จะต้องสร้างสัญญาณแบบ Pulse เข้าที่ขา STCP (Storage Clock Input) และต้องกำหนดขาอินพุตที่ขา OE (Output Enable) ให้เป็นลอจิก LOW ถ้าต้องการจะเคลียร์ข้อมูลในรีจิสเตอร์ ให้ป้อนอินพุตที่ขา MR (Master Reset) เป็น LOW แล้วจึงเปลี่ยนเป็น HIGH #include ...

เครื่องวัด H,T

รูปภาพ
code 1 #include <LiquidCrystal_I2C.h> #include "DHT.h" DHT dht; int dhtDataPin = 11; LiquidCrystal_I2C lcd(0x27,16,2); void setup() {   dht.setup(dhtDataPin);   lcd.begin(16,2);   lcd.setCursor(0,0);lcd.print("H =    %RH");   lcd.setCursor(0,1);lcd.print("T =    C"); } void loop() {   delay(dht.getMinimumSamplingPeriod());   int humidity = dht.getHumidity();   int temperature = dht.getTemperature();   lcd.setCursor(4,0);   lcd.print(humidity);   lcd.setCursor(4,1);   lcd.print(temperature);   delay(300); } ทดลอง  พอเอาภาษา C ใส่ Arduino จะสามารถวัดค่าความชื้นและอุณหภูมิ code 2 #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 ...