https://www.youtube.com/watch?v=ebahW2mOAMY
ศูนย์รวมอะไหล่เครื่องใช้ไฟฟ้า https://shp.ee/fr5e7rd
IDEA#27 วิธีการวัดทรานซิสเตอร์
ด้วยมิเตอร์เข็ม ครบทุกเม็ด
28/6/2565
SONGCHAI PRAPATRUNGSEE
คลิกติดตาม ถูกใจเพจ แชร์ เพื่อรับข้อมูลใหม่ทันที ซ่อมเครื่องซักผ้าพัดลมอื่นๆ ฟรี! ซ่อมง่ายด้วยคลิปซ่อม ชมสแตมป์เหรียญพระของเก่า ซื้อเครื่องมือ รักษาตัว คอมพิวเตอร์ ไมโครคอนโทรลเลอร์
https://www.youtube.com/watch?v=ebahW2mOAMY
ศูนย์รวมอะไหล่เครื่องใช้ไฟฟ้า https://shp.ee/fr5e7rd
IDEA#27 วิธีการวัดทรานซิสเตอร์
ด้วยมิเตอร์เข็ม ครบทุกเม็ด
28/6/2565
SONGCHAI PRAPATRUNGSEE
https://www.youtube.com/watch?v=LL1nmpKlK2E
ศูนย์รวมอะไหล่เครื่องใช้ไฟฟ้า https://shp.ee/fr5e7rd
IDEA#26 NCV3 วัดไฟไม่สัมผัสจากระยะไกล
สนามไฟฟ้ามากวัดได้ไกล น้อยต้องวัดไกล้ น้อยมากวัดไม่ได้
21/6/2565
SONGCHAI PRAPATRUNGSEE
https://www.youtube.com/watch?v=Gq_PG_Z-Ejc
แท่งหลักดินการไฟฟ้า240cm16mm
https://shp.ee/j75gzvs
IDEA#25 สาเหตุ
C คาปาซิเตอร์ระเบิด ต่อไฟกลับขั้ว
ใช้ไฟเกินกว่าที่ระบุไว้ในตัวคาปาซิเตอร์ หรือ C
19/6/2565
SONGCHAI PRAPATRUNGSEE
https://www.youtube.com/watch?v=u8oU99d_R_0
ศูนย์รวมอะไหล่เครื่องใช้ไฟฟ้า https://shp.ee/fr5e7rd
IDEA#24 การต่อขนานคาปาซิเตอร์กับการต่ออนุกรมคาปาซิเตอร์เพื่อการใช้งาน
ความต้านทานCมีผลต่อโวลท์
18/6/2565
SONGCHAI PRAPATRUNGSEE
https://www.youtube.com/watch?v=6U1z-7IhzV0
Arduino https://shope.ee/flzWiiRYw
PJ#7 หุ่นยนต์ไม่ตกโตํะ+หลบสิ่งกีดขวาง 2ล้อ 2WD Smart Car Robot DIY Arduino Obstacle Avoiding Car At
Home
15/6/2565 SONGCHAI PRAPATRUNGSEE
//ขา9ในProteus8 ทำPWMไม่ได้
#define maxSpeed 100 // sets speed of DC motors
int speedSet = 90;//PWM speed of DC motors
int moveForwardL=0;
int moveBackwardL=0;
int moveRightL=0;
int moveLeftL=0;
// Motor A
int motor1A = 5;
int motor1B = 4;
int speedMotor1 = 11; // ขา11ใช้ได้ ขา9ใช้ไม่ได้ในProteus8, PWM ควบคุมความเร็วมอเตอร์
// Motor B
int Motor2A = 3;
int Motor2B = 2;
int speedMotor2 = 6; // ขา6 PWM ควบคุมความเร็วมอเตอร์
Servo myservo; //ประกาศตัวแปรแทน Servo
//กำหนดขาและตัวแปร Ultrasonic
const int trigPin = 10;
const int echoPin = 8;
long duration;
int distance;
int irLeft=12;
int irRight=9;
int irL,irR;
void setup(){
Serial.begin(9600);
//กำหนดขาควบคุมการทำงานของ Motor ผ่านทาง L298N
pinMode(motor1A,OUTPUT);
pinMode(motor1B,OUTPUT);
pinMode(speedMotor1,OUTPUT);
pinMode(Motor2A,OUTPUT);
pinMode(Motor2B,OUTPUT);
pinMode(speedMotor2,OUTPUT);
myservo.attach(7); // กำหนดขา7 ควบคุมServo
myservo.write(40);
//กำหนดการทำงานของขา Ultrasonic
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
//กำหนดการทำงานของขา IR Infrared
pinMode(irLeft, INPUT_PULLUP);
pinMode(irRight, INPUT_PULLUP);
}
void loop (){
int distanceR = 0;
int distanceL = 0;
delay(40);// ถ้าไม่delay40 จะไม่สามารถทำงานได้ในProteus8
irL=digitalRead(irLeft);
irR= digitalRead(irRight);
if(irL==LOW&&irR==LOW){
distance = readUltra();
if(distance<=15){
moveStop();
delay(100);
moveBackward();
delay(900);
moveStop();
delay(100);
distanceR = lookRight();
distanceL = lookLeft();
if(distanceR>=distanceL){
moveRight();
delay(900);
moveStop();
}else{
moveLeft();
delay(900);
moveStop();
}
}else{
moveForward();}
}
if(irL==HIGH&&irR==HIGH){
moveBackward();
delay(900);
moveRight();
delay(900);
moveForward();
//delay(70000);
}
if(irL==HIGH&&irR==LOW){
moveBackward();
delay(900);
moveLeft();
delay(900);
moveForward();
}
if(irL==LOW&&irR==HIGH){
moveBackward();
delay(900);
moveRight();
delay(900);
moveForward();
}
}
//////////// Functinon //////////////////////////////////////////////////////////////////////////////////////////////////////////////
int readUltra(){
digitalWrite(trigPin, LOW);
delay(10);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.0346 / 2;
return distance;
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
}
int lookRight(){
//myservo.write(40);
myservo.write(10);
delay(500);
int distance = readUltra();
//myservo.write(100);
myservo.write(40);
delay(500);
return distance;
}
int lookLeft(){
//myservo.write(160);
myservo.write(70);
delay(500);
int distance = readUltra();
//myservo.write(100);
myservo.write(40);
delay(500);
return distance;
}
void moveStop() {
// Motor 1
analogWrite(speedMotor1, 0); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, LOW);
digitalWrite(motor1B, LOW);
// Motor 2
analogWrite(speedMotor2, 0); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, LOW);
digitalWrite(Motor2B, LOW);
}
void moveForward() {
// moveBackwardL=0;
// moveRightL=0;
// moveLeftL=0;
// if(moveForwardL==0){
// for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
// {
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, HIGH);
digitalWrite(motor1B, LOW);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, HIGH);
digitalWrite(Motor2B, LOW);
// }
// moveForwardL=1;
//}
}
void moveBackward() {
// moveForwardL=0;
// moveRightL=0;
// moveLeftL=0;
// if(moveBackwardL==0){
// for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
// {
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, LOW);
digitalWrite(motor1B, HIGH);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, LOW);
digitalWrite(Motor2B, HIGH);
//delay(5);
// }
// moveBackwardL=1;
//}
}
void moveRight() {
// moveForwardL=0;
// moveBackwardL=0;
// moveLeftL=0;
// if(moveRightL==0){
// for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
// {
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, HIGH);
digitalWrite(motor1B, LOW);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, LOW);
digitalWrite(Motor2B, HIGH);
// }
// moveRightL=1;
//}
}
void moveLeft() {
// moveForwardL=0;
// moveBackwardL=0;
// moveRightL=0;
// if(moveLeftL==0){
// for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
// {
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, LOW);
digitalWrite(motor1B, HIGH);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, HIGH);
digitalWrite(Motor2B, LOW);
// }
// moveLeftL=1;
//}
}
https://www.youtube.com/watch?v=oun2qrp4vQM
Arduino https://shope.ee/flzWiiRYw
PJ#6 IR Infared Module ตัวตรวจจับวัตถุด้วยแสง
ต่อผิดขั้วชอร์ทหรือไม่ สีดำ สีขาว สีชมพู สีฟ้า ระยตรวจจับตํ่าสุดเท่าไร
12/6/2565 SONGCHAI PRAPATRUNGSEE
https://www.youtube.com/watch?v=-jQ1rAnhA88
Arduino https://shope.ee/flzWiiRYw
PJ#5 หุ่นยนต์หลบสิ่งกีดขวาง 2ล้อ 2WD Smart Car Robot DIY Arduino Obstacle Avoiding Car At
Home
9/6/2565 SONGCHAI PRAPATRUNGSEE
//ขา9ในProteus8 ทำPWMไม่ได้
#define maxSpeed 100 // sets speed of DC motors
int speedSet = 0;//PWM speed of DC motors
int moveForwardL=0;
int moveBackwardL=0;
int turnRightL=0;
int turnLeftL=0;
// Motor A
int motor1A = 5;
int motor1B = 4;
int speedMotor1 = 11; // ขา11ใช้ได้ ขา9ใช้ไม่ได้ในProteus8, PWM ควบคุมความเร็วมอเตอร์
// Motor B
int Motor2A = 3;
int Motor2B = 2;
int speedMotor2 = 6; // ขา6 PWM ควบคุมความเร็วมอเตอร์
Servo myservo; //ประกาศตัวแปรแทน Servo
//กำหนดขาและตัวแปร Ultrasonic
const int trigPin = 10;
const int echoPin = 8;
long duration;
int distance;
void setup(){
Serial.begin(9600);
//กำหนดขาควบคุมการทำงานของ Motor ผ่านทาง L298N
pinMode(motor1A,OUTPUT);
pinMode(motor1B,OUTPUT);
pinMode(speedMotor1,OUTPUT);
pinMode(Motor2A,OUTPUT);
pinMode(Motor2B,OUTPUT);
pinMode(speedMotor2,OUTPUT);
myservo.attach(7); // กำหนดขา7 ควบคุมServo
//กำหนดการทำงานของขา Ultrasonic
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop (){
int distanceR = 0;
int distanceL = 0;
delay(40);// ถ้าไม่delay40 จะไม่สามารถทำงานได้ในProteus8
distance = readUltra();
if(distance<=15){
moveStop();
delay(100);
moveBackward();
delay(700);
moveStop();
delay(100);
distanceR = lookRight();
distanceL = lookLeft();
if(distanceR>=distanceL){
turnRight();
delay(700);
moveStop();
}else{
turnLeft();
delay(700);
moveStop();
}
}else{
moveForward();}
}
//////////// Functinon //////////////////////////////////////////////////////////////////////////////////////////////////////////////
int readUltra(){
digitalWrite(trigPin, LOW);
delay(10);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.0346 / 2;
return distance;
// Serial.print("Distance: ");
// Serial.println(distance);
// delay(100);
}
int lookRight(){
myservo.write(40);
delay(500);
int distance = readUltra();
myservo.write(100);
delay(500);
return distance;
}
int lookLeft(){
myservo.write(160);
delay(500);
int distance = readUltra();
myservo.write(100);
delay(500);
return distance;
}
void moveStop() {
// Motor 1
analogWrite(speedMotor1, 0); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, LOW);
digitalWrite(motor1B, LOW);
// Motor 2
analogWrite(speedMotor2, 0); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, LOW);
digitalWrite(Motor2B, LOW);
}
void moveForward() {
moveBackwardL=0;
turnRightL=0;
turnLeftL=0;
if(moveForwardL==0){
for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
{
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, HIGH);
digitalWrite(motor1B, LOW);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, HIGH);
digitalWrite(Motor2B, LOW);
}
moveForwardL=1;
}
}
void moveBackward() {
moveForwardL=0;
turnRightL=0;
turnLeftL=0;
if(moveBackwardL==0){
for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
{
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, LOW);
digitalWrite(motor1B, HIGH);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, LOW);
digitalWrite(Motor2B, HIGH);
delay(5);
}
moveBackwardL=1;
}
}
void turnRight() {
moveForwardL=0;
moveBackwardL=0;
turnLeftL=0;
if(turnRightL==0){
for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
{
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, HIGH);
digitalWrite(motor1B, LOW);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, LOW);
digitalWrite(Motor2B, HIGH);
}
turnRightL=1;
}
}
void turnLeft() {
moveForwardL=0;
moveBackwardL=0;
turnRightL=0;
if(turnLeftL==0){
for (speedSet = 0; speedSet < maxSpeed; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
{
// Motor 1
analogWrite(speedMotor1, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(motor1A, LOW);
digitalWrite(motor1B, HIGH);
// Motor 2
analogWrite(speedMotor2, speedSet); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(Motor2A, HIGH);
digitalWrite(Motor2B, LOW);
}
turnLeftL=1;
}
}
https://www.youtube.com/watch?v=y4rkNSQn8w0
โค้ดส่งฟรีShopee https://shope.ee/2AZNXQLS68
PJ#4 Gear Motor 3-6v ความลับที่หลายคนยังไม่รู้ การกินกระแส ถ้าโหลดหนักมากเท่าไร
ก็ยิ่งกินกระแสมากขึ้้นเท่านััน
3/6/2565 SONGCHAI PRAPATRUNGSEE