วันจันทร์ที่ 27 กรกฎาคม พ.ศ. 2558

วันที่ 49 ของการฝึกงานที่ FIBO

       วันนี้พี่ปูเอาหัวฉีดพลาสติกมาให้ครับผมจึงทำงานทดลองครับผมทีได้คือพลาสติกออกมาครับผมดีใจมากครับ
ผมจึงทำการเขียนโปรแกรมให้มันทำงานอัตโนมัติครับโดยมีโปรแกรมแป็นแบบนี้ครับ

#define EN 24
#define X_DIR 28
#define X_STP 26
#define END_EFFECTOR        10
#include <LiquidCrystal.h>
#include <Wire.h> 
 //ประกาศ Library ของจอ I2C
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal lcd(16, 17, 23, 25, 27, 29);
const int analogInPin = A13;
int sensorValue = 0;
float RValue = 0;
float Rsensor = 0;
float Temperature = 0;
float Ta = 0;
float Tb = 0;
float Tc = 0;
const long table [72][2] =
{
 {-55,10723236},{-50,7366689},{-44,5132757},{-40,3624165},{-35,2591304},
 {-30,1874913},{-25,1371886},{-20,1014545},{-15,757881},{-10,571590},
 {-5,435026},{0,333964},{5,258497},{10,201659},{15,158499},{20,125468},
 {25,100000},{30,80223},{35,64759},{40,52589},{45,42951},{50,35272},
 {55,29119},{60,24161},{65,20144},{70,16874},{75,14198},{80,11998},
 {85,10181},{90,8674},{95,7419},{100,6369},{105,5487},{110,4744},
 {115,4115},{120,3581},{125,3126},{130,2737},{135,2404},{140,2117},
 {145,1869},{150,1655},{155,1469},{160,1307},{165,1166},{170,1043},
 {175,934},{180,839},{185,755},{190,681},{195,615},{200,557},{205,505},
 {210,459},{215,418},{220,382},{225,349},{230,319},{235,292},{240,269},
 {245,247},{250,227},{255,210},{260,194},{265,179},{270,166},{275,154},
 {280,143},{285,133},{290,124},{295,115},{300,107}};

void step (boolean dir, byte dirPin, byte stepperPin, int steps, int RPM) 
    digitalWrite (dirPin, dir); 
     for (int i = 0; i <steps; i++)
   { 
   digitalWrite (stepperPin, HIGH); 
   delayMicroseconds (150000/RPM); 
   digitalWrite (stepperPin, LOW); 
   delayMicroseconds (150000/RPM); 
   } 

 void setup()
  {
   pinMode(10,OUTPUT);
   pinMode(A13,INPUT);
   pinMode (X_DIR, OUTPUT); 
   pinMode (X_STP, OUTPUT); 
   pinMode (EN, OUTPUT); 
   digitalWrite (EN, LOW);
 
 }
 void loop() 
 {
   sensorValue = analogRead(analogInPin); // Read the SENSOR
   RValue = (sensorValue*5.0000)/1024.0000; //Calculated from sensor
   Rsensor = ((50/(5 - RValue))-10)*1000; //The value of the resistive sensors.
     //delay(100);
      for(int i =0 ; i<72 ; i++)
   {
     if(Rsensor>table[i][1])
     {
       Ta  = ((table[i-1][1])-Rsensor); //Calculated the resistive sensors
       Tb = Ta/((table[i-1][1])-(table[i][1]));
       Tc = Tb*5;       Temperature = (table[i][0])-Tc;
       lcd.clear();
       lcd.setCursor(0, 1);
       lcd.print("Temp =" ); 
       lcd.print(Temperature);
       lcd.print(" C");
       break;
     }
     
   }
 
     if(Temperature < 150)
    {
   digitalWrite(END_EFFECTOR, HIGH);   
    }
    else{digitalWrite(END_EFFECTOR, LOW);
         step (HIGH, X_DIR, X_STP, 200, 200 );
        }
    if(Temperature >= 170)
    {
        digitalWrite(END_EFFECTOR, LOW);   
    }
    else{digitalWrite(END_EFFECTOR, HIGH); }      
    
 }
   
   


วันที่ 48 ของการฝึกงานที่ FIBO

     วันนี้ผมได้ทดลองฉีดพลาสิกครับแต่ผลที่ได้คือพลาสติกไม่ยอมไหลผมคิดว่ามันต้องมีอะไรไปติดแน่ๆๆเลยครับผมต้องให้พี่ปูมาแก่ปัญหาให้ครับต้องรอเป็นพรุ่งนี้ครับเพราะปี่ปูจะเอาไปแช้น้ำยาละลายพลาสติกครับผมเลยทำการติดตั่งเซ็นเซอร์ตัวที่สองครับและรอทดลองหัวฉีดพลาสติกครับ


วันอาทิตย์ที่ 26 กรกฎาคม พ.ศ. 2558

วันที่ 47 ของการฝึกงานที่ FIBO

วันนี้พี่สองพาไปซื่อของที่บ้านหม้อครับพี่สองไปซื่อสลิงมาทำแขนกลของพี่เขาพวกผมทุกคนเลยขอติดรถไปด้วยครับโดยผมจะไปซือเวอร์เนียร์และพาบอมไปซือโน๊ดบุ๊กที่ ฟอร์จูนทาวน์ผมได้ซือเวอร์เนียร์มาด้วยครับ

วันพุธที่ 22 กรกฎาคม พ.ศ. 2558

วันที่ 46 ของการฝึกงานที่ FIBO

        วันนี้ผมได้ทำการเขียนโปรแกรมใหม่ เหตุผมที่ผมเขียนใหม่คือโปรแกรมอันเดิมมันยังไม่ดีครับมันยังอ่านค่าอุณหภูมิไม่ถูกต้องครับ แนวทางการเขียนของผมคือ ให้ความร้อนจากหัวฉีดพลาสติกแล้วแสดงผลออกทางจอภาพแล้วทำการคอนโทรลความร้อนให้คงที่จากนั้นให้ทำการจ่ายพลาสติกให้กับหัวหัวฉีดพลาสติก ครับ

#define END_EFFECTOR        10
#include <LiquidCrystal.h>

#include <Wire.h>
 //ประกาศ Library ของจอ I2C
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal lcd(16, 17, 23, 25, 27, 29);
const int analogInPin = A13;
int sensorValue = 0;
float RValue = 0;
float Rsensor = 0;
float Temperature = 0;
float Ta = 0;
float Tb = 0;
float Tc = 0;
const long table [72][2] =
{
 {-55,10723236},{-50,7366689},{-44,5132757},{-40,3624165},{-35,2591304},
 {-30,1874913},{-25,1371886},{-20,1014545},{-15,757881},{-10,571590},
 {-5,435026},{0,333964},{5,258497},{10,201659},{15,158499},{20,125468},
 {25,100000},{30,80223},{35,64759},{40,52589},{45,42951},{50,35272},
 {55,29119},{60,24161},{65,20144},{70,16874},{75,14198},{80,11998},
 {85,10181},{90,8674},{95,7419},{100,6369},{105,5487},{110,4744},
 {115,4115},{120,3581},{125,3126},{130,2737},{135,2404},{140,2117},
 {145,1869},{150,1655},{155,1469},{160,1307},{165,1166},{170,1043},
 {175,934},{180,839},{185,755},{190,681},{195,615},{200,557},{205,505},
 {210,459},{215,418},{220,382},{225,349},{230,319},{235,292},{240,269},
 {245,247},{250,227},{255,210},{260,194},{265,179},{270,166},{275,154},
 {280,143},{285,133},{290,124},{295,115},{300,107}};

 void setup()
  {
   pinMode(10,OUTPUT);
   pinMode(A13,INPUT);

 }
 void loop()
 {
   sensorValue = analogRead(analogInPin); // Read the SENSOR
   RValue = (sensorValue*5.0000)/1024.0000; //Calculated from sensor
   Rsensor = ((50/(5 - RValue))-10)*1000; //The value of the resistive sensors.
     delay(100);
      for(int i =0 ; i<72 ; i++)
   {
     if(Rsensor>table[i][1])
     {
       Ta  = ((table[i-1][1])-Rsensor); //Calculated the resistive sensors
       Tb = Ta/((table[i-1][1])-(table[i][1]));
       Tc = Tb*5;       Temperature = (table[i][0])-Tc;
       lcd.clear();
       lcd.setCursor(0, 1);
       lcd.print("Temperature =" );
       lcd.print(Temperature);
       lcd.print(" C");
       break;
     }
   
   }

     if(Temperature < 150)
    {
   digitalWrite(END_EFFECTOR, HIGH);  
    }
    else{digitalWrite(END_EFFECTOR, LOW); }
     
      if(Temperature >= 200)
    {
   digitalWrite(END_EFFECTOR, LOW);  
    }
    else{digitalWrite(END_EFFECTOR, HIGH); }    
   
 }
 
 

วันจันทร์ที่ 20 กรกฎาคม พ.ศ. 2558

วันที่ 45 ของการฝึกงานที่ FIBO

           วันนี้ผมได้ทำการเปลี่ยนตัวจับหัวฉีดพลาสติกครับเนื่องจารต้องทำงารติดพัดลมครับในการออกแบบของผมยังไม่ดีเท่าที่ควรครับคือรูขันน็อตมันไม่ตรงกับตัวอย่างเดิมครับมันแตกต่างกันอยู่ประมาณ 1-2 mm ครับจากนั้นได้ทำการเปลี่อนครับและทำการลงโปรแกรมครับซึงผลที่ผมทำสามารถฉีดพลาสติกได้ครับแต่ผมยังไม่ได้เอาโปรแกรมคอลโทรลมอเตอรืฉีดพลาสติกลงครับแค่รองดูว่ามันสามารถละลายพลาสติกได้ไหมครับซึงผลที่ออกมาเป็นที่น่าพอใจครับมันสามารถงานพรุ่งนี้คือเขียนโปรแกรมใหม่ครับแล้วหาไฟเลี้ยงให้กับพัดลมครับปัญหามันคือพัดลมใช้ไป 5V  0.11 A แต่บอร์ดไดร์ จ่ายไฟ 12 V ครับ




วันที่ 44 ของการฝึกงานที่ FIBO

                 วันนี้ผมได้ทำการทดรอง Heater หัวปรินเต้อครับโดนการเขียนโปรแกรมสั่งให้ร้อนหรือ HIGH และสั่งให้หยุดจ่ายไฟ หรือ LOW ในการทดลองนี้ผมทำขึงมาดูว่ามันสามารถใช้การใด้ครับซึ่งผลที่ได้คือสามารถใช้งานได้ครับและได้ทำการอ่านบทความเพื่อทำความเข้าใจให้การใช้งานและรอชินงานที่จะนำมาติดตั่งครับมันคือ ตัวจับตัวฉีดพลาสติกครับตัวเดิมมันไม่มีพัดลมผมเลยออกแบบมาเพื่อติดพัดลมให้มันครับ


วันพฤหัสบดีที่ 16 กรกฎาคม พ.ศ. 2558

วันที่ 43 ของการฝึกงานที่ FIBO

วันนี้ผมพี่ปูได้เอาชิ้นงานที่ผมออกแบบมาให้ดูครับรูปร้างจะเป็นแบบนี้ครับ


วันนี้ได้ลอง Heating ดูว่าโปรแกรมใช้งานได้จริงไหมผมก็ทำได้จริงครับแต่แค่ลองดูครับก็



ส่วนของโปรแกรมครับ

#define END_EFFECTOR        10
#include <LiquidCrystal.h>

#include <Wire.h> 
 //ประกาศ Library ของจอ I2C
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal lcd(16, 17, 23, 25, 27, 29);
const int analogInPin = A13;
int sensorValue = 0;
float RValue = 0;
float Rsensor = 0;
float Temperature = 0;
float Ta = 0;
float Tb = 0;
float Tc = 0;
const long table [72][2] =
{
 {-55,10723236},{-50,7366689},{-44,5132757},{-40,3624165},{-35,2591304},
 {-30,1874913},{-25,1371886},{-20,1014545},{-15,757881},{-10,571590},
 {-5,435026},{0,333964},{5,258497},{10,201659},{15,158499},{20,125468},
 {25,100000},{30,80223},{35,64759},{40,52589},{45,42951},{50,35272},
 {55,29119},{60,24161},{65,20144},{70,16874},{75,14198},{80,11998},
 {85,10181},{90,8674},{95,7419},{100,6369},{105,5487},{110,4744},
 {115,4115},{120,3581},{125,3126},{130,2737},{135,2404},{140,2117},
 {145,1869},{150,1655},{155,1469},{160,1307},{165,1166},{170,1043},
 {175,934},{180,839},{185,755},{190,681},{195,615},{200,557},{205,505},
 {210,459},{215,418},{220,382},{225,349},{230,319},{235,292},{240,269},
 {245,247},{250,227},{255,210},{260,194},{265,179},{270,166},{275,154},
 {280,143},{285,133},{290,124},{295,115},{300,107}};

 void setup()
  {
   pinMode(10,OUTPUT);
   pinMode(A13,INPUT);

 }
 void loop() 
 {
   sensorValue = analogRead(analogInPin); // Read the SENSOR
   RValue = (sensorValue*5.0000)/1024.0000; //Calculated from sensor
   Rsensor = ((23.5/(5 - RValue))-11)*1000; //The value of the resistive sensors.
     delay(100);
      for(int i =0 ; i<72 ; i++)
   {
     if(Rsensor>table[i][1])
     {
       Ta  = ((table[i-1][1])-Rsensor); //Calculated the resistive sensors
       Tb = Ta/((table[i-1][1])-(table[i][1]));
       Tc = Tb*5;       Temperature = (table[i][0])-Tc;
       lcd.setCursor(0, 1);
       lcd.print("Temperature =" ); 
       lcd.print(Temperature);
       lcd.print(" C");
       break;
     }
     
   }
   digitalWrite(END_EFFECTOR, HIGH);
   
     
     delay(800);
 }
   
    

วันนี้พี่ให้ทำงานครับคือเข้าเล่มหนังสือครับ

วันที่ 42 ของการฝึกงานที่ FIBO

    วันนี้ผมได้ทำโปรแกรมอ่านค่าอุณหภูมิแล้วแสดงผลที่ จอ LCD โปรแกรมผมทำยังไม่ได้เพราะยังไม่มีไลบรารี LCD 20*4 ผมเลยยังทำไม่ได้แต่ผมก้อ่านวิธีการใช้งานของอุปกรณ์ต่างๆๆของ 3d printer และเปิดดูการต่ออุปกรณ์และได้อ่านหนังสือจาก inex เพื่อทำความเข้าในในโปรแกรมที่จะนำมาใช้งานให้ได้มากที่สุดครับ 

วันอังคารที่ 14 กรกฎาคม พ.ศ. 2558

วันที่ 41 ของการฝึกงานที่ fibo

      ผมได้ทำการอ่านดาต้าชีท 3D shield เพื่อที่จะติดตั่งเซ็นเซอร์วัดอุณหภูมิและทำการเขียนโปรแกรมวัดค่าแล้วแสดงผลที่ LCD ในการอ่านเจอปัญหาคือตัว R ที่ต่ออนุกรมกับเซ็นเซอร์มันค่าไม่เท่ากันคือที่ผมใช้ในการเขียนทดลองจะมีค่า R = 10 k OHM แต่อยู่ใน  shield  จะมีค่า R = 4.7 k OHM ผมจึงได้ทำการคำนวณใหม่ครับ โดนการคำนวณหาค่าที่ PIN analog อ่านค่าได้ แล้วนำมาคำนวนหาค่าความต้านทางที่เกิดจากอุณหภูมิที่ทำให้ค่าความต้านทานของเซ็นเชอร์เปรีนรไปครับ จากการคำนวณผมได้ค่า Vin ที่ PIN analog อ่านได้ คือ Vin = 4.7 V
     
      ดาต้าชีท 3D shield  จะเป็นตัวนี้ครับ


    ส่วนวงจรจริงผมได้ทำการเปิดดูข้างในเรียบร้อยแล้วครับ 

วันจันทร์ที่ 13 กรกฎาคม พ.ศ. 2558

วันที่ 40 ของการฝึกงานที่ FIBO

วันนี้ได้อ่านวิธีการใช้งานหัวทำความร้อน 3d ปรินเตอร์ว่ามีวิธีการใช้แบบถูกวิธีจึงจะเกิดการนำมาใช้ให้เกิดประสิทธิภาพสูงสุดครับ 

ส่วนนี้จะเป็นส่วนที่สำคัญมากครับเพราะจะทำให้หัวฉีกพลาสติกทำงานได้ดีต้องมีความร้อนที่พอเหมาะครับการทำงานของมันคือจะจ่ายกระแสให้กับหัวทำความร้อนแล้วจะไดความรอนที่ต้องการครับ
 
     ส่วนวงจรข้างใน 3D printer ผมก็ศึกษาครับแต่ยังไม่มากครับรู้แค่ pin ไหนต่อกับอะไรอค่นี้ครับ

วันที่ 39 ของการฝึกงานที่ FIBO

วันนี้ผมได้อ่านวิธีการใช้งานเซ็นเชอร์ Ultrasonic Sensor ModuleHC-SR04 โมดูลเพื่อใช้ในการวัด
ระยะทางโดยไม่มีการสัมผัส
วันนี้เรามาคุยกันเรื่องของการวัดระยะทางโดยไม่ต้องมีการสัมผัสกับพื้นผิวของวัตถุที่ต้องการวัดระยะ


นะครับ   อุปกรณ์ตัวนี้ราคาถูกสุดๆ จึงมีความเหมาะสมกับผู้เริ่มต้นใช้งาน Arduino Board เพื่อศึกษาการทำงานเบื้องต้นของ Arduino ครับ  และแน่นอนมันใช้กับบอร์ดได้ทุกชนิดนะครับ ทั้งที่เป็น Arduino หรือ เป็นไมโครคอนโทรลเลอร์อย่างอื่น
ก่อนอื่นมาคุยกันถึงหลักการที่ใช้ในการวัดระยะทางโดยไม่ต้องใช้ไม้บรรทัดกันก่อนครับ
หลักการแบบสั้นๆ นะครับ  การทำงานของ Ultrasonic sensor ก็เหมือนกับค้างคาวที่บินในเวลากลางคืนครับ  คือใช้การส่งคลื่นเสียงที่หูมนุษย์ไม่สามารถได้ยินออกไปสะท้อนวัตถุที่ต้องการวัดระยะ แล้วจับเวลาเสียงสะท้อน เพื่อคำนวณระยะทางครับ


   คราวนี้มาแบบยาวๆ เพื่อความเข้าใจกันมากขึ้นครับ  อุปกรณ์ตัวนี้เริ่มต้นทำงานโดยการส่งสัญญาณเริ่มต้นยาว 10 ไมโครวินาที ไปสั่งให้แหล่งกำเนิดเสียงทำงาน  จากนั้นจะส่งคลื่นเสียงความถี่ 40 kHz ออกไป 8 พัสส์  แล้วรอฟังเสียงสะท้อนครับ  ตัวซ้ายจะเป็นตัวส่งคลื่นเสียงออกไป ส่วนตัวขวาในรูปจะเป็นตัวรับความถี่ที่สะท้อนกลับมาครับ

เนื่องจากเสียงที่ส่งออกไปถึงแม้จะไม่ได้ยินเพราะเกิน 20 kHZ ที่หูมนุษย์จะรับฟังได้  แต่เนื่องจากยังคงเป็นคลื่นเสียง ดังนั้นความเร็วของเสียงจึงแปรผันตามอุณหภูมิด้วยตามสูตรนี้ครับ
 C ≈ 331.5 + 0.61 θ (m/s)
   ดังนั้นแน่นอนครับ เวลาผู้ผลิตเขียนโปรแกรมออกแบบไว้ก็อยู่ที่อุณภูมิทำงานที่อาจจะแตกต่างจากบ้านเรา ก็ทำให้ค่าที่วัดได้มีความผิดพลาดไปบ้างครับ
อีกส่วนที่จะต้องรู้ก็คือช่วงวัด และมุมที่สามารถวัดได้ครับ  และเนื่องจากคุณสมบัติของอุปกรณ์ที่ใช้ในการกำเนิดเสียง และรูปร่างของตัวลำโพง (Horn) ก็ทำให้อุปกรณ์ตัวนี้มีมุมวัด 15 องศา (Measuring Angle) ครับ  โดยสามารถวัดระยะห่างได้ตั้งแต่ 2 ซม. จนถึง 4 เมตร  

วันพฤหัสบดีที่ 9 กรกฎาคม พ.ศ. 2558

วันที่ 38 ของการฝึกงานที่ FIBO

วันนี้ได้ทำการทดรองโปรแกรมอ่านค่าอุณหภูมิแล้วแสดงผลที่จอ LCD โดยการคำนวณค่าจากโปรแกรมแล้วแสดงผลที่จอ LCD นี้คือโปรแกรมครับ

const int analogInPin = A0;
int sensorValue = 0;
float RValue = 0;
float Rsensor = 0;
float Temperature = 0;
float Ta = 0;
float Tb = 0;
float Tc = 0;
const long table [72][2] =
{
 {-55,10723236},{-50,7366689},{-44,5132757},{-40,3624165},{-35,2591304},
 {-30,1874913},{-25,1371886},{-20,1014545},{-15,757881},{-10,571590},
 {-5,435026},{0,333964},{5,258497},{10,201659},{15,158499},{20,125468},
 {25,100000},{30,80223},{35,64759},{40,52589},{45,42951},{50,35272},
 {55,29119},{60,24161},{65,20144},{70,16874},{75,14198},{80,11998},
 {85,10181},{90,8674},{95,7419},{100,6369},{105,5487},{110,4744},
 {115,4115},{120,3581},{125,3126},{130,2737},{135,2404},{140,2117},
 {145,1869},{150,1655},{155,1469},{160,1307},{165,1166},{170,1043},
 {175,934},{180,839},{185,755},{190,681},{195,615},{200,557},{205,505},
 {210,459},{215,418},{220,382},{225,349},{230,319},{235,292},{240,269},
 {245,247},{250,227},{255,210},{260,194},{265,179},{270,166},{275,154},
 {280,143},{285,133},{290,124},{295,115},{300,107}};
 void setup()
 {
   pinMode(A0,INPUT);
   Serial.begin(9600);
 }
 void loop() 
 {
   sensorValue = analogRead(analogInPin); // Read the SENSOR
   RValue = (sensorValue*5.0000)/1024.0000; //Calculated from sensor
   Rsensor = ((50/(5 - RValue))-10)*1000; //The value of the resistive sensors.
     delay(100);
      for(int i =0 ; i<72 ; i++)
   {
     if(Rsensor>table[i][1])
     {
       Ta  = ((table[i-1][1])-Rsensor); //Calculated the resistive sensors
       Tb = Ta/((table[i-1][1])-(table[i][1]));
       Tc = Tb*5;
       Temperature = (table[i][0])-Tc;
       Serial.print(" Temperature = " ); 
       Serial.print(Temperature);
       Serial.println(" C");
       break;
     }
   }
   delay(1000);
 }
   
   

วันพุธที่ 8 กรกฎาคม พ.ศ. 2558

วันที่ 37 ของการฝึกงานที่ FIBO

วันนี้ผมได้ทำโปรแกรมแสดงผลทางจอ LCD จริงๆๆแล้วครับ เนื่องจากไปซื่อตัวนี้มาครับ

 
 วิธีการต่อวงจรครับผมได้ต่อประมาณนี้ครับ

รูปวิธีการต่ออุปกรณ์
     
    มีโปรแกรมที่ที่ผมรองเอามาทดสอบครับ

#include <Wire.h> 

#include <LiquidCrystal_I2C.h> //ประกาศ Library ของจอ I2C
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// initialize the LCD
lcd.begin();
// Print a message to the LCD.
lcd.print("Hello !!!"); //ฟังก์ชั่นในการกำหนดข้อความที่ต้องการแสดงผล
lcd.setCursor(0, 1); //ฟังก์ชั่นในการกำหนดตำแหน่ง Cursor
lcd.print("bass");

}
void loop() 
{
}
        ผมได้ทำโปรแกรมอ่านค่าอุณหภูมิแล้วแสดงผลออกทางจอ LCD ครับผลที่ออกมาก็ได้ดั่งใจหมายครับเป็นการเริ่มที่ดีครับ
รูปค่าที่แสดงผล
   ส่วนโปรแกรมก็จะได้เป็นประมาณนี้ครับพร้อมที่จะนำมาใช้งานจริงครับ
#include <Wire.h> 


#include <LiquidCrystal_I2C.h> //ประกาศ Library ของจอ I2C
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// initialize the LCD
lcd.begin();
// Print a message to the LCD.
//lcd.print("Hello !!!"); //ฟังก์ชั่นในการกำหนดข้อความที่ต้องการแสดงผล
//lcd.setCursor(0, 1); //ฟังก์ชั่นในการกำหนดตำแหน่ง Cursor
//lcd.print("10");

}
void loop() 
{
  
  for(int i=0; i<=10; i++)
  {
  lcd.setCursor(14, 0);
  lcd.print(i);
  delay(300);
  }
}


วันที่ 36 ของการฝึกงานที่ FIBO

วันที่ 7/07/2558 ผมได้ไปซื่อขอกกับพี่ไนท์ฟอจูนทาว ที่พระราม 9 ครับหลังจากนั้นได้ไปหาอาจารยืที่มาบุญครอง ที่สยามสแควร์ ครับผมได้เดินดูของมากมายเลยครับแต่ไม่ได้ซื่ออะไรเลยครับ ไปเวลา 11.00 น
กลับมาถึงก้ประมาณ 21.00 น ครับซึ่งกานไปครั้งนี้ก็รู้สึกดีใจครับคือผมยังไม่เคยไปเลยครับเป็นการไปครั้งแรกของผมครับซึ่งก็มีข้อดีข้อเสียครับคือรถมันติดมากเลยครับทำให้ใช้เวลาอยู่บนรถนานพอสมควรครับสิ่งของมีมากมายเว้นแต่จะหาสิ่งที่ต้องการเจอหรือเปล่าเท่านั้นเองครับ

วันจันทร์ที่ 6 กรกฎาคม พ.ศ. 2558

วันที่ 35 ของการฝึกงานที่ FIBO

วันนี้ผมได้คึกษาเกียวกับการเขียนโปรแกรม รับคำสังจากโทรสัพท์โดยฝาน บลูทูธโดยสั่งให้มอเตอร์ทำงานครับ

App Manual.
Enable Bluetooth Setting First.
Then if you are not pairing your bluetooth module yet.
Must pairing in the bluetooth settings.

Open App. Click Connect Bluetooth Button.





วันอาทิตย์ที่ 5 กรกฎาคม พ.ศ. 2558

วันที่ 34 ของการฝึกงานที่ FIBO

ผมได้ศึกษาวิธีการเขียนโปรแกรมเพื่อแสดงผมทาง จอ LCD โดยการเขียนโปแกรม ARDUINO และได้ศึกษาการสั่งงาน Arduino ผ่าน Bluetooth ครับ
จากนั้นสั่งอัพโหลดโค้ดดังนี้

char BYTE;
int  LED = 13; // LED on pin 13
 
void setup() {
  Serial.begin(9600); 
  pinMode(LED, OUTPUT);
}
 
void loop() {
  Serial.println("Press 1 to turn Arduino pin 13 LED ON or 0 to turn it OFF:");
  while (!Serial.available());   // stay here so long as COM port is empty   
  BYTE = Serial.read();        // read next available byte
  Serial.print(BYTE);
  if( BYTE == '0' ) digitalWrite(LED, LOW);  // if it's a 0 (zero) tun LED off
  if( BYTE == '1' ) digitalWrite(LED, HIGH); // if it's a 1 (one) turn LED on
  delay(50);
}
โปรแกรมนี้ไม่ซับซ้อน แค่ต้องการตัวเลข 0,1 เพื่อเปิด/ปิด LED ที่ขา 13 เท่านั้น เมื่ออัพโหลดโค้ดแล้ว ให้เปิด Serial Monitor ขึ้นมา จากนั้นพิมพ์เลข 1 ลงไป

วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2558

วันที่ 33 ของการฝึกงานที่ FIBO

1.วันนี้ผมได้ทำวงจรวัดอุณหภูมิของของเซ็นเซอร์โดยการคำนวณทางคณิตศาสตร์จนได้มาเป็นโปรแกรมวัดค่าอุณหภูมิที่น่าจะตรงกับความจริงครับ ซึ่งโปรแกรมนี้ผมได้ทำมาหลายแบบแล้วทั่งเขียนโปรแกรมจริงและนำมาคำนวณอีกด้วยซึงผมที่ได้มาค่อนข้างน่าพอใจเป็นอย่างมากเลยครับจากคนที่ไม่เคยทำโปรแกรมมาก่อนครับซึ่งผลที่ได้เป็นประมาณนี้ครับ

ตอนนี้หรือแค่จะเอาค่าที่ได้ไปแสดงผลออกทางจอ LCD ครับซึงผมยังไม่เคนเขียนโปรแกรมแสดงผลออกทางจอ LCD เลยครับ อย่างแรกเลยที่ผมต้องทำคือศึกษาให้เข้าใจก่อนลงมือทำครับถ้าทำแล้วมันไม่ได้เดียวใจผมจะท้อซะก่อนยังใงก็สู้ต่อไปครับ


วันพุธที่ 1 กรกฎาคม พ.ศ. 2558

วันที่ 32 ของการฝึกงานที่ FIBO

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


         การแสดงผล Output แบบ LCD หรือชื่อเต็มๆเคือ Liquid Crystal Display กันนะครับ
เรียกให้ชัดๆก็คือหน้าจอ Character LCD ขนาด 16 ตัวอักษร จำนวน 2 บรรทัดนั้นเองครับ
สำหรับ LCD ส่วนใหญ่ที่ใช้กัน ก็จะใช้ Controller ของ Hitachi เบอร์ HD44780 ครับ
เริ่มแรกก็ทำการ Hello World ! กันก่อนนะครับ
โดย Code ทั้งหมดในตัวอย่างนี้จะใช้ library หน้าจอของ LiquidCrystal นะครับ
14-4-2556 15-41-21
ขาของ LCD จะมีอยู่ 16 ขา อธิบายเพิ่มเติมของขาแต่ละขากันสักนิดนะครับ
– GND : Ground ระหว่าง ไมโครคอนโทรลเลอร์กับ LCD
-VCC : ไฟเลี้ยง LCD ขนาด +5VDC
-VO : ขาสำหรับปรับความสว่างของหน้าจอ LCD
-RS : Register select ใช้บอกให้ LCD Controller ว่า ข้อมูลที่ส่งให้ขา Data เป็นคำสั่งหรือข้อมูล
-R/W : Read/Write ใช้กำหนดว่าจะอ่านหรือเขียนข้อมูลกับ LCD Controller
-E : Enable ใช้กำหนดการทำงานให้กับ LCD Controller
-DB0-DB7 :  เป็นขาสัญญาณ Data ใช้เขียนหรืออ่านข้อมูล/คำสั่ง กับ LCD Controller

การต่อ LCD จะทำได้ 2 แบบครับ
– 4 Bit : ใช้ 7 ขา I/O ต่อกับ arduino
– 8 Bit : ใช้ 11 ขา I/O ต่อกับ arduino
สำหรับการแสดงผลข้อความโดยทั่วไปจะใช้กันแค่ 4 bit ครับ ดังตัวอย่างก็เช่นกันครับ
Example 1 : Character LCD 16×2เราจะทำการทดของเขียนโปรแกรม Hello World จากโค๊ดตัวอย่างก่อนนะครับ
ดูว่าเราต่อวงจรถูกต้องไหมก่อนนะครับ
2013-04-14 12.50.52
Hardware :
– Arduino UNO R3 จำนวน 1 อัน
– LCD 16×2 จำนวน 1 อัน
– R ปรับค่าได้ (Potentiometer) 10K (จะเรียกสั้นๆว่า 10K pot นะครับ) จำนวน 1 อัน
– สายจั๊ม
– โปรโตบอร์ด

Circuit :
โดยเราจะต่อวงจร LCD เข้ากับ Arduino ดังภาพนะครับ
LCD_bb
ภาพการต่อวงจรอย่างง่ายนะครับ
LCD_schem
ถ้าดูแบบเป็นวงจรหน่อยก็แบบนี้ครับ
โดยเจ้าหน้าจอ LCD จะมีขาอยู่ 16 ขา จะต่อดังนี้นะครับ
– LCD RS ต่อกับ Digital 12
– LCD Enable ต่อกับ Digital 11
– LCD D4 ต่อกับ Digital 5
– LCD D5 ต่อกับ Digital 4
– LCD D6 ต่อกับ Digital 3
– LCD D7 ต่อกับ Digital 2
– LCD Gnd และ LCD R/W ต่อเข้ากับ ขาข้างซ้ายหรือขวาของ 10K pot ก็ได้ครับ แล้วจั๊มเข้า GND ครับ
– LCD Vcc ต่อกับ ขาอีกข้างของ 10K pot แล้วจั๊มเข้า 5V ครับ
– LCD VO ต่อกับ ขากลางของ 10K pot ครับ

CODE :
 อ้างอิง
   http://www.sathittham.com/arduino/arduino-basic-lcd/