วันจันทร์ที่ 22 มิถุนายน พ.ศ. 2558

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

วันนี้พี่ปูได้ให้งานมาคือคอนโทรลสเต็ปมอเตอร์ป้อนเส้นพราสติกให้กับหัว 3d printer ผมจึงไปศึกษา shield  
และให้ศึกษาวิธีการใช้งานกับ arduino mega 2560 ผมจึงได้อ่านศึกษาครับ


มีวิธีการใช้งานกับ arduino mega 2560 ว่าใช้ Pin ไหนใช้กับสเต็ปมอเตอร์ตัวไหน
ผมจึงได้เขียนโปรแกรมขึ้นมาประมาณนี้ครับการทำงานด้วยความเร็วกี้รอบต่อนาทีมันถึงจะพอดีกับหัวฉีดพราสติกมีโปรแกรมประมาณนี้ครับ


#define EN 24

#define X_DIR 28
#define X_STP 26
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 (X_DIR, OUTPUT); 
   pinMode (X_STP, OUTPUT); 
   pinMode (EN, OUTPUT); 
   digitalWrite (EN, LOW); 
void loop ()
 
  
    step (LOW, X_DIR, X_STP, 200, 200 );

}

และมีการทดรองโปรแกรมว่าถ้าหัวฉีดพราสติกร้อนได้ที่แล้วให้มีการทำงานคือมีการป้อนเส้นพราสติกแต่จำรองการทำงานให้ LED ติดแทนครับคือมีการรับค่าจารตัวอ่านค่าความร้อนมาผมจำรองให้หัวรับความร้อนเป็น  25 ํC LED ติดถ้าต้ำกว่า 25 ํC LED จะตับ ครับ

const int analogInPin = A4; 
int LED = 8;
int sensorValue = 0;       
float voltageValue = 0;       
float temperatureValue = 0;
void setup() 
{
  pinMode(LED,OUTPUT);
  Serial.begin(9600);
}

void loop() {
    sensorValue = analogRead(analogInPin);
  voltageValue = (sensorValue*5.0000)/1024.0000;
  temperatureValue = voltageValue*100;
   Serial.print("sensor = " );
  Serial.print(sensorValue);
  Serial.print("\t voltage = ");
  Serial.print(voltageValue);
  Serial.print(" V\t temperature = ");
  Serial.print(temperatureValue);
  Serial.println(" C");

  delay(1000);
  if (temperatureValue >= 25)
{
  digitalWrite(LED,HIGH);
}
  else{
  digitalWrite(LED,LOW);
  }
}

1 ความคิดเห็น:

  1. จะทำให้ สเตปหมุนพร้อมกัน 2ตัวได้ไหมครับแล้วต้องเขียนโคดยังไงพอจะสอนได้ไหมครับ

    ตอบลบ