12/04/2568

Theme 1 วงจรประยุกต์สำหรับทำงานโครงงานเครื่องซักผ้าอัตโนมัติ

 

📣ความรู้ไปประยุกต์ใช้อุปกรณ์อิเล็กทรอนิกส์เพื่อสร้างสรรค์เป็นโครงงานตามที่โจทย์กำหนดได้ คำสั่งเขียน 

const int door_lock = 2; 

const int water_valve_02 = 3; 

const int water_valve_01 = 4; 

const int drain_valve = 5; 

const int CCW = 6; 

const int CW = 7; 

const int motor_speed = 8; 

const int drain_button = 9; 

const int refil_button = 10; 

const int spin_button = 11; 

const int main_button = 12; 

const int water_level_switch = 13; 

const long debounce = 100;   

long time_main = 0;         

long time_spin = 0;         

long time_refil = 0;         

long time_drain = 0;         

int state_drain = LOW; 

int current_drain; 

int previous_drain = HIGH; 

int state_main = LOW; 

int current_main; 

int previous_main = HIGH; 

int state_refil = LOW; 

int current_refil; 

int previous_refil = HIGH; 

int state_spin = LOW; 

int current_spin; 

int previous_spin = HIGH; 

int time = 360000; 

void setup()

   {

    pinMode(door_lock, INPUT);

    pinMode(water_valve_02, OUTPUT);

    pinMode(water_valve_01, OUTPUT);

    pinMode(drain_valve, OUTPUT);

    pinMode(CCW, OUTPUT);

    pinMode(CW, OUTPUT);

    pinMode(motor_speed, OUTPUT);

    pinMode(drain_button, INPUT);

    pinMode(refil_button, INPUT);

    pinMode(spin_button, INPUT);

    pinMode(main_button, INPUT);

    pinMode(water_level_switch, INPUT_PULLUP);

    digitalWrite(CCW, LOW);

    digitalWrite(CW, LOW);

   }

void loop()

   {

current_drain = digitalRead(drain_button);

if (current_drain == HIGH && previous_drain == LOW && millis() - time_drain > debounce)

     { 

  if (state_drain == HIGH)

       {

    state_drain = LOW;

   }

  else

         {

  state_drain = HIGH;

}

time_drain = millis();

}

previous_drain = current_drain;

current_main = digitalRead(main_button);

if (current_main == HIGH && previous_main == LOW && millis() - time_main > debounce)

     { 

  if (state_main == HIGH)

       {

    state_main = LOW;

   }

  else

         {

  state_main = HIGH;

}

  time_main = millis();

}

previous_main = current_main;

current_refil = digitalRead(refil_button);

if (current_refil == HIGH && previous_refil == LOW && millis() - time_refil > debounce)

     { 

  if (state_refil == HIGH)

       {

state_refil = LOW;

   }

  else

         {

  state_refil = HIGH;

}

  time_refil = millis();

}

previous_refil = current_refil;

current_spin = digitalRead(spin_button);

if (current_spin == HIGH && previous_spin == LOW && millis() - time_spin > debounce)

     { 

  if (state_spin == HIGH)

       {

state_spin = LOW;

   }

  else

         {

  state_spin = HIGH;

}

time_spin = millis();

}

previous_spin = current_spin;

for(int j=0; j<100; j++){

if(digitalRead(water_level_switch) == HIGH && state_drain == LOW && state_main == HIGH && state_refil == HIGH && state_spin == HIGH){ // get feedback from water level switch

digitalWrite(drain_valve, HIGH); 

delay(1000);

}

else{

digitalWrite(drain_valve, LOW);

break;

}

}

state_drain = HIGH;

for(int i=0; i<100; i++){

if(digitalRead(water_level_switch) == LOW && digitalRead(door_lock) == HIGH && state_refil == LOW && state_main == HIGH && state_drain == HIGH && state_spin == HIGH){ // get feedback from water level switch and door lock

digitalWrite(water_valve_02, HIGH); 

delay(1000);

}

else{

digitalWrite(water_valve_02, LOW);

break;

}

}

state_refil = HIGH;

if(digitalRead(door_lock) == HIGH && state_spin == LOW && state_drain == HIGH && state_main == HIGH && state_refil == HIGH){

digitalWrite(drain_valve, HIGH); 

digitalWrite(motor_speed, HIGH); 

digitalWrite(CW, HIGH); 

delay(10000);

digitalWrite(CW, LOW);

}

digitalWrite(drain_valve, LOW);

digitalWrite(motor_speed, LOW);

state_spin = HIGH;

if(digitalRead(door_lock) == HIGH && state_spin == HIGH && state_drain == HIGH && state_main == LOW && state_refil == HIGH){

for(int i=0; i<100; i++){

if(digitalRead(water_level_switch) == LOW){ 

digitalWrite(water_valve_01, HIGH); 

delay(1000);

}

else{

digitalWrite(water_valve_01, LOW);

break;

}

}

for(long k = 0; k>1; k= time/40000){

digitalWrite(CCW, HIGH); 

delay(10000);            

digitalWrite(CCW, LOW);  

delay(10000);            

digitalWrite(CW, HIGH);  

delay(10000);            

digitalWrite(CW, LOW);   

delay(10000);            

}

for(int j=0; j<100; j++){

if(digitalRead(water_level_switch) == HIGH){ 

digitalWrite(drain_valve, HIGH); 

delay(1000);

}

else{

digitalWrite(drain_valve, LOW);

break;

}

}

for(int i=0; i<100; i++){

if(digitalRead(water_level_switch) == LOW){ 

digitalWrite(water_valve_02, HIGH); 

delay(1000);

}

else{

digitalWrite(water_valve_02, LOW);

break;

}

}

for(long k = 0; k>1; k= time/40000){

digitalWrite(CCW, HIGH);  

delay(10000);            

digitalWrite(CCW, LOW);  

delay(10000);            

digitalWrite(CW, HIGH);  

delay(10000);           

digitalWrite(CW, LOW);   

delay(10000);            

}

digitalWrite(drain_valve, HIGH);

digitalWrite(motor_speed, HIGH); 

digitalWrite(CW, HIGH); 

delay(10000);

digitalWrite(CW, LOW);

digitalWrite(drain_valve, LOW);

digitalWrite(motor_speed, LOW);

}

}

📣ความรู้ไปประยุกต์ใช้อุปกรณ์อิเล็กทรอนิกส์เพื่อสร้างสรรค์เป็นโครงงานตามที่โจทย์กำหนดได้ วงจร





ไม่มีความคิดเห็น:

แสดงความคิดเห็น

ครูเต้ง เทคโนฯ