บทความ

กำลังแสดงโพสต์จาก 2019

โวลต์มิเตอร์แบบดิจิตอลที่ใช้ 8051 Microcontroller

รูปภาพ
โวลต์มิเตอร์แบบดิจิตอลที่ใช้ 8051 Microcontroller ส่วนประกอบวงจร AT89C51 micro controller ADC0804 IC 25V Voltage Sensor AT89C51 programming board Variable resistor (to demonstrate the program) DC Adapter or Battery Code #include<reg51.h> #define lcd P3 #define dat P2 sbit rs=P1^6; sbit e=P1^7; void delay (int); void display (unsigned char); void cmd (unsigned char); void init (void); void string (char *); void intro (void); char i=0; void delay (int d) { unsigned char i=0; for(;d>0;d--) { for(i=250;i>0;i--);                 for(i=248;i>0;i--); } } void cmd (unsigned char c) { lcd=c; rs=0; e=1; delay(10); e=0; } void display (unsigned char c) { lcd=c; rs=0; e=1; delay(10); e=0; } void display (unsigned char c) { lcd=c; rs=1; e=1; delay(10); e=0; } void string (char *c) { while(*c) { display(*c++); } } void init (void

วงจรเซ็นเซอร์อุณหภูมิแบบดิจิตอล

รูปภาพ
วงจรเซ็นเซอร์อุณหภูมิแบบดิจิตอล ส่วนประกอบที่จำเป็น AT89C51 (8051 Microcontroller) 11.0592 MHz Cystal 2 X 33pF Capacitor 10μF/16V Capacitor 3 X 10KΩ Resistor 1KΩ x 8 Resistor Pack 10KΩ POT 16X2 LCD Display ADC0804 LM35 150pF Capacitor 330Ω Resistor Power Supply Connecting Wires 8051 Programmer Code #include<reg51.h> #define lcd P0 #define dat P3 sbit rs=P2^0; sbit e=P2^1; void delay (int); void display (unsigned char); void cmd (unsigned char); void init (void); void string (char *); void intro (void); unsigned char degree[8]={0x0e,0x0a,0x0e,0x00,0x00,0x00,0x00,0x00}; char i=0; void delay (int d) { unsigned char i=0; for(;d>0;d--) { for(i=250;i>0;i--); for(i=248;i>0;i--); } } void cmd (unsigned char c) { lcd=c; rs=0; e=1; delay(10); e=0; } void display (unsigned char c) { lcd=c; rs=1; e=1; delay(10); e=0; } void string (char *c) { whi

วงจรระบบสัญญาณไฟจราจรที่มีความหนาแน่น

รูปภาพ
           วงจรระบบสัญญาณไฟจราจรที่มีความหนาแน่น ส่วนประกอบวงจร: ตัวควบคุม ATmega8 บอร์ด PCB เซ็นเซอร์ IR -4 ไฟ LED-12 (4 สีแดง 4 สีเขียว, สี 4 สีเหลือง) 12 โวลต์แบตเตอรี่หรืออะแดปเตอร์ สายเคเบิลอนุกรม สายเชื่อมต่อ   code #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #define R1 PB0 #define Y1 PB1 #define G1 PB2 #define R2 PB3 #define Y2 PB4 #define G2 PB5 #define R3 PD5 #define Y3 PD4 #define G3 PD3 #define R4 PD2 #define Y4 PD1 #define G4 PD0 int main(void) {     DDRB = 0xff;     DDRD = 0xff;     DDRC = 0x00;         PORTB = 0x00;     PORTD = 0x00;         while(1)     {         if((PINC&0x01) == 0x01)         {         PORTB |= (1<<G1);         PORTB |= (1<<Y2);         PORTD |= (1<<R3);         PORTD |= (1<<R4);                 }         else if((PINC&0x02) == 0x02)         {         PORTB |= (1<<R1);         PORT

รถดั๊มตรวจจับสี

รูปภาพ
รถดั๊มตรวจจับสี อุปกรณ์ 1.รถดั้มสิบล้อ 2.servo motor 3.color sensor 4.กล่องกระดาษสีแดง สีเขียว สีน้ำเงิน 5.ลูกแก้ว #include <Servo.h> #define S0 2 #define S1 3 #define S2 4 #define S3 5 #define Out 6 Servo topServo; int frequency = 0; int color=0; void setup() {   pinMode(S0, OUTPUT);   pinMode(S1, OUTPUT);   pinMode(S2, OUTPUT);   pinMode(S3, OUTPUT);   pinMode(Out, INPUT);   digitalWrite(S0, HIGH);   digitalWrite(S1, LOW);   topServo.attach(7);   Serial.begin(9600); } void loop() {   color = readColor();   delay(10);     switch (color) {     case 1:     topServo.write(0);     delay(5000);     topServo.write(180);     }   color=0; } int readColor() {   digitalWrite(S2, LOW);   digitalWrite(S3, LOW);   frequency = pulseIn(Out, LOW);   int R = frequency;   Serial.print("R= ");   Serial.print(frequency);   Serial.print("  ");   delay(50);   digitalWrite(S2, H

เครื่องรดน้ำต้นไม้อัตโนมัติ

รูปภาพ
        อุปกรณ์ที่ต้องใช้มีดังต่อไปนี้ Arduino Uno R3 พร้อมสาย USB Module รีเลย์ relay 1 Chanel 250V/10A Active HIGH II Soil Moisture Sensor Module วัดความชื่นในดิน ปั๊มน้ำ DC ขนาดเล็ก สายยางปั้มน้ำ DC ยาว 1 เมตร Adapter 5V 1A หม้อแปลง 5V 1 แอมป์ II Power connector 5.5 mm (ตัวเมีย) PCB สายแพร Jumper Male to Female ยาว 20CM จำนวน 10 เส้น ในส่วนของโปรแกรมตัวอย่าง const int analogInPin = A0; const int relay = 2; int sensorValue = 0;        // ตัวแปรค่า Analog int outputValue = 0;        // ตัวแปรสำหรับ Map เพื่อคิด % void setup() {   Serial.begin(9600);   pinMode(relay, OUTPUT); } void loop() {   sensorValue = analogRead(analogInPin);   Serial.print("Soil Moisture = ");   Serial.print(outputValue);   Serial.println(" %");   if (outputValue <= 40) {  //ตั้งค่า % ที่ต้องการจะรดน้ำต้นไม้     digitalWrite(relay, HIGH);   }   else {     digitalWrite(relay, LOW);   }   delay(1000); }

ขาสัญญาณต่างๆของ Z80

รูปภาพ
ขาสัญญาณต่างๆของ Z80 รูปแสดงหน้าที่ขาสัญญาณของ Z80 Z80 เป็นไอซีที่มีขาโดยจะแบ่งตามกลุ่มการใช้งานได้ 6 กลุ่มดังนี้          1. กลุ่มขากำหนดตำแหน่ง (Address Bus)  เป็นกลุ่มที่ใช้ในการระบุตำแหน่งของหน่วยความจำหรือตำแน่งของอินพุต-เอาท์พุต ที่ Z80 จะติดต่อด้วยโดยจะใช้ขา A0 – A15 ในการกำหนดตำแหน่งของหน่วยความจำที่จะติดต่อ และใช้ขา A0 – A7 ในการกำหนดตำแหน่งอินพุต-เอาท์พุต โดยจะเชื่อมต่อเข้ากับกลุ่มสายบอกตำแหน่งหรือแอดเดรสบัส (ADDRESSS BUS) ภายนอกของระบบ          2. กลุ่มขาส่ง- รับข้อมูล (Data Bus)  จะใช้ขา D0 ถึง D7 จำนวน 8 ขา ในการรับข้อมูลเข้าสู่ซีพียูหรือส่งข้อมูลออกไป โดยจะเชื่อมต่อกับ บัสข้อมูล (DATA BUS) ของระบบ การส่ง-รับข้อมูลจะกระทำทีละ 8 เส้น หรือ 8 บิต          3. กลุ่มขาสัญญาณนาฬิกาและไฟเลี้ยงระบบ (Clock&Power Supply)  จะเป็นกลุ่มที่รับสัญญาณนาฬิกาเพื่อกำหนดจังหวะการทำงานของซีพียูและไฟเลี้ยงโดยจะมรขา VCC สำหรับต่อกับไฟเลี้ยง +5 VDC และ ขา GND เป็นขาที่ต่อกับกราวด์ ส่วนขา CLK จะเป็นขาที่ต่อกับสัญญาณนาฬิกา (Clock) ของระบบ          4. กลุ่มขาควบคุมระบบ (System Control)  เป

Arduino

รูปภาพ
Arduino คืออะไร           Arduino   อ่านว่า (อา-ดู-อิ-โน่ หรือ อาดุยโน่) เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Source คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัว บอร์ด  Arduino  ถูกออกแบบมาให้ใช้งานได้ง่าย ดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา ทั้งนี้ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนาต่อยอดทั้งตัวบอร์ด หรือโปรแกรมต่อได้อีกด้วย                     ความง่ายของบอร์ด  Arduino  ในการต่ออุปกรณ์เสริมต่างๆ คือผู้ใช้งานสามารถต่อวงจรอิเล็กทรอนิคส์จากภายนอกแล้วเชื่อมต่อเข้ามาที่ขา I/O ของบอร์ด (ดูตัวอย่างรูปที่ 1) หรือเพื่อความสะดวกสามารถเลือกต่อกับบอร์ดเสริม ( Arduino Shield ) ประเภทต่างๆ (ดูตัวอย่างรูปที่ 2) เช่น  Arduino XBee Shield ,  Arduino Music Shield ,  Arduino Relay Shield ,  Arduino GPRS Shield  เป็นต้น มาเสียบกับบอร์ดบนบอร์ด  Arduino  แล้วเขียนโปรแกรมพัฒนาต่อได้เลย จุดเด่นที่ทำให้บอร์ด Arduino เป็นที่นิยม ง่ายต่อการพัฒนา มีรูปแบบคำสั่งพื้นฐาน ไม่ซับซ้อนเหมาะสำหรับผู้เริ่มต้น มี Arduino Community กลุ่มคนที่ร่วมกันพัฒนาที่แข็งแรง  Op