Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

Onderdelen en benodigdheden

SparkFun Arduino Pro Mini 328 - 5V/16MHz × 1
1306 OLED-display × 1
DFRobot Gravity: Digitale drukknop (Geel) × 2
Seeed Grove - 2-kanaals SPDT-relais × 1
Digilent 5V 2.5A Schakelvoeding × 1
SparkFun USB UART Serial Breakout - CY7C65213 × 1
HC-05 Bluetooth-module × 1

Benodigde tools en machines

  • Soldeerbout (standaard)
  • Lijmpistool (standaard)
  • Dubbelzijdig tape
  • Groen tape

Apps en online services

  • Arduino IDE

Over dit project

Inleiding

Dit project is een vervangend onderdeel voor een wasmachine met een defecte wastimer. De oorspronkelijke timer was een mechanische timer/richtingsschakelaar die de motor van de wasvat op de volgende manier controleerde:

  • Neem x minuten wastijd als invoer van de gebruiker
  • Draai de motor van de wasvat kloksgewijs gedurende enkele seconden
  • Stop de motor voor enkele seconden
  • Draai de motor van de wasvat tegen de klok in gedurende enkele seconden
  • Stop de motor voor enkele seconden
  • Herhaal de laatste 4 stappen tot de wastimer verloopt

Ik ga een elektronische timer bouwen die dezelfde bewerkingen uitvoert.

Demo

De volgende video demonstreert de werking van deze elektronische timer:

Hardware

  • Arduino Pro Mini: Voert de code uit en regelt alles
  • 1306 OLED: Toont gebruiksinstructies en aftelling
  • Rode/Zwarte drukknop: Stel timer in en start timer
  • 5V Relaismodules: Voeden de motor met wisselstroom en regelen de draairichting
  • 5V Adapter: Voedt de elektronische timer

De 1306 OLED is direct op de Pro Mini gesoldeerd:

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

2 relaismodules, 2 drukknoppen, Arduino Pro Mini + 1306 OLED zijn op een experimenteerprint verbonden:

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display
Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

Programmeren

Stap 1: Verkrijg een HC-05 Bluetooth-Serieel module en wijzig de baudrate naar 57600 volgens deze tutorial of deze stap. Hiervoor is een andere Arduino Uno of een USB-naar-Serieel module vereist.

Gebruik de volgende AT-commando's:

AT
AT+UART = 57600,0,0
AT+RESET

Stap 2: Nadat de baudrate is gewijzigd naar 57600, sluit de HC-05 aan op de Arduino Pro Mini volgens het volgende aansluitschema:

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

Stap 3: Selecteer het board in de Arduino IDE, plak de code en klik op uploaden.

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

Ik gebruik Bluetooth Serieel omdat dit draadloze in-systeem programmeerbare mogelijkheden biedt, wat hielp bij het updaten van de code op de Pro Mini indien nodig.

Aansluiting en apparaatwerking uitgelegd

De aansluiting kan variëren voor nieuwere/andere wasmachine-modellen, dus ik leg uit hoe het bij mij zit. Let op het "Sharp"-schema rechtsonder: een WITTE DRAAD komt van het net en gaat naar de wastimer, een RODE DRAAD en een BLAUWE DRAAD komen uit de wastimer. Ik heb deze 3 draden losgekoppeld van de oorspronkelijke (defecte) wastimer en door een gat in de bovenkant van de wasmachine gehaald.

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display
Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

Wanneer de WITTE DRAAD wordt geschakeld naar de RODE DRAAD, draait de motor kloksgewijs. Wanneer de WITTE DRAAD wordt geschakeld naar de BLAUWE DRAAD, draait de motor tegen de klok in.

Deze elektronische timer met Arduino Pro Mini houdt de wastijd bij, draait de motor van de wasvat 5 seconden in één richting door de WITTE en RODE draden via één relaiscontact te verbinden. Vervolgens stopt hij de motor en wacht 5 seconden. Daarna draait hij de motor 5 seconden in de andere richting door de WITTE en BLAUWE draden via het andere relaiscontact te verbinden. Vervolgens stopt hij en wacht nogmaals 5 seconden. Al deze tijdsreeksen kunnen in de code worden aangepast indien nodig.

Het volgende diagram toont hoe door de inkomende wisselstroom naar de ene of de andere poot van de motorcondensator te schakelen, de draairichting van de wisselstroommotor kan worden gewijzigd.

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

Enkele fase inductiemotor theorie

Referenties

Je kunt meer details leren over elk component in deze tutorials:

  • Relais tutorial
  • Knop tutorial

Disclaimer!

Dit project heeft te maken met netspanning, doe dit op eigen risico!

Code

Ongetiteld bestand C/C++
#include "U8glib.h" //SSD1306 oled waveshare(clk,din,cs,d/c,res); U8GLIB_SSD1306_128X64 u8g(A4,A5,12,11,10);
volatile int rbc = 0;
volatile int bbc = 0;
int sec =0;
int mi = 0;
int motor_rotation = 0;

void setup() {
  u8g.setRot180();
  analogReference(INTERNAL);
  pinMode(2,INPUT_PULLUP);
  pinMode(3,INPUT_PULLUP);
  attachInterrupt(0, ISR_SW_RED,FALLING);
  attachInterrupt(1, ISR_SW_BLACK,FALLING);
  pinMode(5,OUTPUT);
  digitalWrite(5,LOW);
  pinMode(4,OUTPUT);
  digitalWrite(4,LOW);
}

void loop(void) {
  while(!rbc) {
    // toon timer instelmenu
    u8g.firstPage();
    do {
      draw_menu();
    } while( u8g.nextPage() );
    // toon gebruiker correcte bedieningsmelding
    if (rbc>0 && bbc==0) {
      u8g.firstPage();
      do {
        draw_message();
      } while( u8g.nextPage() );
      delay(2000);
      rbc=0;
    }
  }
  // start timer
  if(rbc>0) {
    sec =59;
    mi = bbc-1;
    while(mi>=0) {
      // toon aftelmelding
      unsigned long temp = millis()+1000;
      while(temp>=millis()) {
        u8g.firstPage();
        do {
          draw_timer();
        } while( u8g.nextPage() );
      }
      sec=sec-1;
      if(sec%5==0) {
        control_motor(); // roep elke 5 sec aan
      }
      if (sec <= 0) {
        sec = 59;
        mi = mi - 1;
      }
    }
    rbc = 0;
    bbc = 0;
    mi = 0 ;
    sec = 0;
    digitalWrite(5,LOW);digitalWrite(6,LOW);
  }
}// end of loop

void draw_menu(void) {
  u8g.setFont(u8g_font_timB24);
  if (bbc<10) {
    u8g.drawStr( 22,30,"0");
    u8g.setPrintPos(38,30);u8g.print(bbc);
  } else {
    u8g.setPrintPos(22,30);u8g.print(bbc);
  }
  u8g.drawStr( 54,30,":00");
  u8g.setFont(u8g_font_8x13);
  u8g.drawStr( 0,62," 'WASMACHINE TIMER'");
  u8g.setFont(u8g_font_5x8);
  u8g.drawStr( 0,47,"Rood:START Zwart:TIJD INSTELLEN");
}

void draw_message(void) {
  u8g.setFont(u8g_font_8x13);
  u8g.drawStr( 0,10," STEL WAS-TIMER IN");
  u8g.drawStr( 0,23,"EERST MET DE");
  u8g.drawStr( 0,36,"ZWARTE KNOP");
  u8g.drawStr( 0,62," 'WASMACHINE TIMER'");
  u8g.setFont(u8g_font_5x8);
  u8g.drawStr( 0,47,"Rood:START Zwart:TIJD INSTELLEN");
}

void draw_timer(void) {
  u8g.setFont(u8g_font_timB24);
  if (mi<10) {
    u8g.drawStr( 22,30,"0");
    u8g.setPrintPos(38,30);u8g.print(mi);
  } else {
    u8g.setPrintPos(22,30);u8g.print(mi);
  }
  u8g.drawStr( 54,30,":");
  if (sec<10) {
    u8g.drawStr( 70,30,"0");
    u8g.setPrintPos(86,30);u8g.print(sec);
  } else {
    u8g.setPrintPos(70,30);u8g.print(sec);
  }
  if(motor_rotation==0) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASMOTOR KLKSGEWIJS");
    digitalWrite(5,HIGH);
  }
  if(motor_rotation==1) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASMOTOR GESTOPT ");
    digitalWrite(5,LOW);digitalWrite(4,LOW);
  }
  if(motor_rotation==2) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASMOTOR TEEN KLK IN ");
    digitalWrite(4,HIGH);
  }
  if(motor_rotation==3) {
    u8g.setFont(u8g_font_5x8);
    u8g.drawStr( 0,47," WASMOTOR GESTOPT ");
    digitalWrite(5,LOW);digitalWrite(4,LOW);
  }
  u8g.setFont(u8g_font_8x13);
  u8g.drawStr( 0,62," 'WASMACHINE TIMER'");
}

void ISR_SW_RED() {
  sei();
  rbc++;
  cli();
}

void ISR_SW_BLACK() {
  sei();
  bbc++;
  cli();
}

void control_motor() {
  motor_rotation++;
  if(motor_rotation>3) {
    motor_rotation = 0;
  }
}

Schema's

Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display
Intelligente Wasmachine-timer met Arduino Pro Mini en OLED-display

Productieproces

  1. EEG-Apparaten: Ontwerp, Productie en Opkomende Toepassingen
  2. Automaatjes: Een Amerikaanse Industriemacht van $36,6 Mrd
  3. Stemmachines: Geschiedenis, Technologie en Standaarden
  4. Expertgids voor Moderne Wisselgeldautomaten: Ontwerp, Componenten en Toekomsttrends
  5. Uitgebreid Overzicht van Moderne ECG-Apparaten: Technologie, Productie en Toekomstige Innovaties
  6. De Evolutie en Productie van Naaimachines: Van 19e-Eeuwse Innovatie tot Moderne Automatisering
  7. Melkmachines: Ontwerp, Geschiedenis en Toekomstige Innovaties
  8. Panty's: De Ultieme Gids voor Elegante Dameskousen
  9. Essentiële onderdelen van een draaibank: functies en overzicht
  10. Draaibanken begrijpen: geschiedenis, typen en toepassingen
  11. Belangrijkste Onderdelen van een Freesmachine Uitgelegd