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 >> Industriële technologie

Automatisch spoorweghekbesturingssysteem - Circuit- en broncode

High Speed ​​Auto Railway Gate Controller Circuit met Arduino en ultrasone sensoren

In deze tutorial leren we hoe we een eenvoudig en efficiënt automatisch hogesnelheidspoortcontrollersysteem kunnen ontwerpen. Dit is een relatief eenvoudige benadering van dit project, maar je kunt dit als een basisbouwsteen nemen en bij verdere aanpassingen kunnen we ook de snelheid volgen van de trein waarmee deze passeert en nog veel meer. Maar voordat we meteen naar de tutorial gaan, moeten we een idee krijgen van wat automatisering is en wat je er precies van kunt verwachten.

Automatisering betekent in feite het bedenken van een methode om menselijke inspanningen/interventie te verminderen of te elimineren. In deze tutorial gaan we uitleggen hoe je een spoorpoort automatiseert met Arduino met behulp van een servomotor samen met de Proteus-software.

De complexiteit van de automatisering kan variëren van een eenvoudige "aan/uit"-besturing tot zeer complexe multivariabele algoritmen. De besturingssystemen voor automatiseringsdoeleinden kunnen ofwel open-lus ofwel gesloten-lus zijn, wat betekent dat het kan werken met een enkele ingangsparameter of in reactie op de output die als input wordt gevoed, zoals in het geval van gesloten-lussystemen. De automatisering in de spoorwegindustrie is een belangrijke behoefte omdat we het geavanceerde tijdperk binnenstappen en om het risico op ongevallen als gevolg van door mensen veroorzaakte fouten te verminderen, is het erg belangrijk dat we deze taken door deze slimme machines laten uitvoeren.

  • Gerelateerde post:Circuit snelheidsdetectie auto – werk- en broncode

Zoals bij elke technologie heeft ook automatisering zijn voor- en nadelen:

Voordelen

  1. Verhoging van de productiviteit
  2. Voorspelbare kwaliteit (kwaliteitsverbetering)
  3. Verhoogde robuustheid
  4. Geweldige uitvoerconsistentie
  5. Verlaging van de menselijke arbeidskosten
  6. Zeer nauwkeurig
  7. Vermindert menselijke inspanningen in monotone werken

Nadelen

  1. Vaakzaam voor beveiligingsbedreigingen
  2. Ontwikkelingskosten kunnen hoger zijn dan de voorspelling
  3. Hoge opstartkosten
  4. Oorzaak van werkloosheid in veel sectoren

De genoemde voordelen wegen ruimschoots op tegen de nadelen en daarom betreedt de hele wereld het tijdperk van automatisering.

In deze tutorial proberen we een spoorpoort te automatiseren om te openen en te sluiten wanneer het circuit een trein langs het spoor detecteert en we zullen ook een zoemer of een alarm afgeven dat de snelheid aangeeft van de trein hoger is dan een bepaalde drempel en om dat te bereiken gaan we de twee zeer veelgebruikte elektronische componenten gebruiken, namelijk Arduino en servomotor.

De sensor die we in deze tutorial gaan gebruiken is de ultrasone sensor, maar het is niet verplicht om deze sensor te gebruiken. We kunnen ook een andere versie van dit project maken met behulp van de IR-sensor module en het hangt af van onze keuze, wat we willen gebruiken en wat direct beschikbaar is voor ons.

  • Gerelateerde post:Smart Home Automation-systeem - Circuit en broncode

Benodigde componenten voor de poortcontroller van de spoorweg

  1. Arduino UNO
  2. Zoemer
  3. Ultrasone sensor (HC-SR04)
  4. Servomotor

Software vereist:

  1. Arduino IDE
  2. Proteus

Circuitdiagram van Railway Gate Controller 

Onderdeelbeschrijving

Arduino UNO

Arduino is in feite een ontwikkelbord dat open source is en voornamelijk gebruikmaakt van de Microchip ATmega328P-microcontroller en wordt vervaardigd door Arduino.cc. Het bord wordt geleverd met een set input/output-pinnen bestaande uit digitale en analoge die kunnen worden aangesloten op verschillende uitbreidingskaarten en externe circuits.

Het bord wordt geleverd met 14 digitale pinnen samen met 6 analoge pinnen die worden gebruikt of programmeerbaar worden gemaakt met behulp van een IDE (Integrated Development Environment) die erbij wordt geleverd, namelijk Arduino IDE. Het geprogrammeerde wordt gebrand via een USB-kabel type B. Opstartmethoden voor het bord kunnen via de USB-kabel of door het aansluiten van 9 volt dc-voeding. Aanvaardbaar spanningsbereik varieert van 7 tot 20 volt. Qua ontwerp en werking verschilt het niet veel van zijn andere familieleden, namelijk Arduino Nano en Arduino Leonardo.

STK500 is nog steeds het originele protocol voor Uno om te communiceren. Het grote verschil met zijn voorgangers is dat het geen gebruik maakt van de FTDI USB-to-serial driverchip. Integendeel, het gebruikt ATmega 16U2 (Atmega8U2 tot versie R2) die is geprogrammeerd als een USB-naar-serieel-converter.

  • Gerelateerde post:variabele voeding met Arduino UNO - circuit en code

Ultrasone sensor (HC-SR04)

De ultrasone sensor is de basissensor die we gebruiken om de afstand van een object te bepalen. Op een andere manier kunnen we zeggen dat het wordt gebruikt om te meten hoe ver het object zich van een bepaald referentiepunt bevindt. Het heeft in principe 4 pinnen;

  • Trigpin
  • Echopin
  • GND-pin
  • VCC-pin (+5V)

Hoe ultrasoon werkt? De zender (trig) zendt een hoogfrequent geluidssignaal dat vervolgens wordt gereflecteerd door het object en vervolgens wordt het gereflecteerde signaal ontvangen bij de ontvanger (echo). Vandaar dat de geluidssnelheid in lucht bij ons bekend is, kunnen we de afstand berekenen. Deze sensor is enorm populair onder de Arduino-knutselaars die deze dagelijks in hun projecten gebruiken en om deze sensor te activeren hebben we een hoge puls van 10 microseconden of meer nodig.

Kenmerken van ultrasone sensor:-

  • Voeding:+5V DC
  • Ruststroom:<2mA
  • Werkende stroom:15mA
  • Effectieve hoek:<15°
  • Reikwijdte:2cm – 400 cm/1″ – 13ft
  • Resolutie:0,3 cm
  • Meethoek:30 graden
  • Triggeringang Pulsbreedte:10uS
  • Afmetingen:45 mm x 20 mm x 15 mm

Gerelateerde post:automatisch plantwater- en irrigatiesysteem - circuit-, code- en projectrapport

Servomotor

Dit is een speciaal soort motoren die worden gebruikt voor zeer specifieke bewegingen onder een bepaalde hoek. Het is een roterende of lineaire actuator die nauwkeurige controle mogelijk maakt op bepaalde hoekige of lineaire posities. Servomotor is niet een enkele entiteit, maar een combinatie van een geschikte motor samen met een sensor die de feedback geeft van de huidige positie van de motor.

Om deze servomotor te gebruiken, moeten verschillende andere geavanceerde modules worden gebruikt, aangezien deze qua gebruiksgemak niet vergelijkbaar zijn met de DC-motor. Deze motoren worden voornamelijk gebruikt in robotica en de grootschalige productie-industrie.

Deze motoren hebben een beetje gelijkenis met de stappenmotoren die de open-loop-besturing vertegenwoordigen. De stappenmotoren hebben ingebouwde stappen waarmee ze draaien, maar door het ontbreken van een feedbacksysteem is het gebruik beperkt tot één specifieke toepassing waarvoor ze zijn ontworpen en vervaardigd.

Dit gebrek aan feedback is wat een servomotor onderscheidt van deze stappenmotoren en ze de overhand geeft omdat ze dynamisch zijn en kunnen worden aangepast aan de taak die voorhanden is met een kleine wijziging in de programmering. Een speciale controllermodule wordt over het algemeen door de fabrikant bij de servomotor geleverd.

Mechanisme - Het is in feite een servomechanisme met gesloten lus dat het feedbacksysteem gebruikt voor het bijwerken van de beweging en de uiteindelijke positie van de rotor. De ingang naar de besturing van de motor kan analoog of digitaal zijn.

  • Gerelateerde post:afstandsmeting met Arduino en ultrasone sensor

Een encoder van een bepaald type is gekoppeld aan de motor om de positie- en snelheidsfeedback te geven aan de besturing die een foutsignaal genereert totdat de gewenste output niet wordt bereikt. En om dit foutsignaal te verminderen, kan de motor in beide richtingen bewegen om het foutsignaal uiteindelijk tot nul te reduceren. Wanneer deze voorwaarde is bereikt, wordt de gewenste output bereikt. Verbeterde en geavanceerde servomotoren hebben een optische roterende encoder aan de uitgaande as om de snelheid te meten.

Zoemer

Zoemer kan mechanisch, elektronisch, elektromechanisch en piëzo-elektrisch van aard zijn. Over het algemeen gebruiken we de elektronische in ovens, spelshows en apparaten enz. Deze zoemers hebben een intern circuit. Het geproduceerde geluid wordt veroorzaakt door de beweging van een schijf. De schijf is ferromagnetisch van aard. Het is een stroomgestuurd apparaat dat een spanningsbron heeft als ingang.

Werking van automatische poortcontroller

In dit circuit hebben we ultrasone sensoren en servomotoren gebruikt om de werking van een spoorwegovergang na te bootsen. Beide sensoren worden geactiveerd met behulp van triggerpinnen die op het Arduino-bord zijn bevestigd en de afstand wordt berekend. Verdere werking van het circuit hangt volledig af van de gemeten afstand.

Als het spoor vrij is, zullen servomotoren niets doen, maar als een trein aan weerszijden van het spoor aankomt, zal de door een van de sensoren gemeten afstand afwijken van de vorige afstand. Op deze manier worden we geïnformeerd over de aankomst van de trein en zal Arduino binnen de kortste keren zijn digitale pinnen 7 en 8 op HIGH zetten.

Deze pinnen zijn verbonden met de twee servomotoren en dan zal de servo een hoekafstand van 90 o afleggen en daarom wordt de poort gesloten om de weg voor voertuigen te blokkeren. Wanneer de trein weggaat van de andere sensor, krijgt de Arduino een melding over het vertrek van de trein en zullen servomotoren opnieuw de vorige positie bereiken om de poort te openen.

Met het oog op de veiligheid van de mensen hebben we nog een functie aan dit circuit toegevoegd en het gaat erom ze te waarschuwen in het geval van een hogesnelheidstrein. Dit wordt bereikt door de tijd tussen de overgangen van twee sensoren in één cyclus te berekenen. Als blijkt dat de tijd minder is dan een bepaalde waarde, maakt de zoemer een zoemend geluid om mensen in de buurt van de oversteekplaats te waarschuwen.

  • Gerelateerde post:slim irrigatiesysteem - schakelschema en code

Broncode en uitleg van het project

In deze schets hebben we vijf variabelen van het type integer en vier van het type long gedefinieerd. De variabelen tr1, tr2, eh1 en eh2 worden gebruikt om de puls te verzenden en de tijdwaarde in microseconden te ontvangen, terwijl de variabelen val1, val2, dis1 en dis2 worden gebruikt om de tijdwaarden in microseconden en de afstand in cm op te slaan. De baudrate is ingesteld op 9600 bits/sec en is verantwoordelijk voor de communicatie tussen het bord en de seriële monitor.

const int tr1 = 13, eh1 = 12, tr2 = 3, eh2 = 2;;
 int bz = 11;
unsigned long val1, dis1, val2, dis2;
#include 
Servo myservo1;
Servo myservo2;
int pos=-1;

Functies die zijn opgenomen in de void setup () zullen slechts één keer worden uitgevoerd tijdens de uitvoering en hun taak is om de baudrate en modus van de pin als invoer of uitvoer te definiëren.

void setup() {
  // put your setup code here, to run once:
pinMode(tr1, OUTPUT);
pinMode(tr2, OUTPUT);
pinMode(bz, OUTPUT);
 
  pinMode(eh1, INPUT);
  pinMode(eh2, INPUT);
  myservo1.attach(8);
 myservo2.attach(7);

  Serial.begin(9600);
}

Volgens de vereiste werking meten we continu de afstand door de ultrasone sensor te activeren en wordt de berekende afstand ingesteld als de parameter van de voorwaardelijke instructie. Als de voorwaarde waar blijkt te zijn, verhoogt de variabele "pos" zijn waarde om de servomotoren te laten werken en wanneer de voorwaarde onjuist wordt bevonden, verlaagt de variabele "pos" de waarde om de servomotoren terug te brengen naar hun vorige positie.

Er is nog een voorwaardelijk statement dat controleert of twee sensoren het object snel detecteren, dan zal het pin 11 hoog zetten om de zoemer aan te zetten om de mensen te waarschuwen. Al deze processen zijn opgenomen in een lege lus () en ze worden herhaald totdat de Arduino wordt gereset of de voeding wordt gestopt.

void loop() {
  // put your main code here, to run repeatedly:
 
 digitalWrite(tr1, LOW);
 delayMicroseconds(2);
 digitalWrite(tr1, HIGH);
 delayMicroseconds(10);
 digitalWrite(tr1, LOW);
 val1 = pulseIn(eh1, HIGH);
 dis1 = (val1 * 0.0343) / 2;

 digitalWrite(tr2, LOW);
 delayMicroseconds(2);
 digitalWrite(tr2, HIGH);
 delayMicroseconds(10);
 digitalWrite(tr2, LOW);
 val2 = pulseIn(eh2, HIGH);
 dis2 = (val2 * 0.0343) / 2;
  
  Serial.println("distance is ");
 Serial.println(dis1);
  Serial.println(dis2);
  if(dis1 < 100 || dis2 < 100)
  {
    if(pos==-1){
    for (pos = 0; pos <= 90; pos += 1) { 
    myservo1.write(pos); 
    myservo2.write(pos);            
    delay(15);}
  }
     delay(1000);
    digitalWrite(tr1, LOW);
    delayMicroseconds(2);
    digitalWrite(tr1, HIGH);
    delayMicroseconds(10);
    digitalWrite(tr1, LOW);
    val1 = pulseIn(eh1, HIGH);
    dis1 = (val1 * 0.0343) / 2; 
    
    digitalWrite(tr2, LOW);
    delayMicroseconds(2);
    digitalWrite(tr2, HIGH);
    delayMicroseconds(10);
    digitalWrite(tr2, LOW);
    val2 = pulseIn(eh2, HIGH);
    dis2 = (val2 * 0.0343) / 2;
     
      if(dis1 < 100 || dis2 < 100) {digitalWrite(bz, HIGH); Serial.println("distance2 is "); Serial.println(dis1); Serial.println(dis2);} } else if(dis1 >= 100 && dis2 >= 100)
    { if(pos==91){
      for (pos = 90; pos >= 0; pos -= 1) {
    myservo1.write(pos);   
    myservo2.write(pos);           
    delay(15);  
      
    }                  
  }
  digitalWrite(bz, LOW); 
      delay(200);
      }
}

Interfacing Hex-bestand met Proteus voor simulatie: Klik in je Arduino IDE op Bestand> Voorkeuren en vink vervolgens in "Toon uitgebreide uitvoer" zowel de compilatie van de opties als de upload aan. En, bij de compilatie van de code in het onderstaande venster, selecteer en kopieer de locatie van het hex-bestand en dubbelklik in Proteus op Arduino en plak de bestandslocatie in de optie Programmabestand en klik op OK. Nu is je circuit klaar voor simulatie in Proteus.

Verwante projecten:

  • Automatische deurbel met objectdetectie door Arduino
  • Automatische nachtlamp met Arduino
  • Arduino PWM-programmering en zijn functies in Arduino
  • Arduino Serieel:Seriële Communicatie door Arduino
  • Ideeënlijst voor laatstejaarsprojecten elektronica
  • Ideeën voor projecten op het gebied van elektrotechniek voor ingenieursstudenten
  • Eenvoudige en eenvoudige mini-projectideeën voor elektronica voor beginners

Industriële technologie

  1. NOR Gate S-R vergrendeling
  2. Waarschijnlijke fouten in bewezen systemen
  3. TTL NOR- en OR-poorten
  4. Motorbesturingscircuits
  5. Movement Sensed Automatic Door Opening System Circuit en werkend
  6. M-TECH CNC-besturingssysteem
  7. Automatische treinbesturing
  8. Arduino Alarmsysteem:SERENA
  9. Arduino-controlecentrum
  10. Automatisch plantenwatersysteem met Arduino
  11. Cloud monitoring, een afstandsbedieningssysteem