arduino opta

Γνωρίστε το Opta™ σας!

Κάντε τα πρώτα σας βήματα με το Opta™ και γνωρίστε μερικά από τα χαρακτηριστικά του. - Από τον Benjamin Dannegård

Εισαγωγή στο Opta

Το Opta™ είναι ένα αξιόπιστο micro PLC με πολλά ενδιαφέροντα χαρακτηριστικά. Σε αυτό το tutorial, θα προχωρήσουμε στη ρύθμιση του Opta™ με το Arduino IDE και θα εξηγήσουμε πώς να χρησιμοποιείτε τις βασικές του λειτουργίες. Περιλαμβάνει παραδείγματα που δείχνουν πώς να προγραμματίζετε τις λυχνίες LED της συσκευής, πώς να χρησιμοποιείτε το προγραμματιζόμενο κουμπί, καθώς και πώς να ελέγχετε τις εισόδους και τις εξόδους.

Στόχοι του tutorial:

  • Μάθετε πώς να χρησιμοποιείτε το Opta™ σε συνεργασία με το Arduino IDE
  • Μάθετε πώς να αναβοσβήνετε τις λυχνίες LED του Opta™.
  • Μάθετε πώς να προγραμματίζετε το κουμπί στο Opta™
  • Μάθετε πώς να δοκιμάζετε τις εισόδους και τις εξόδους του Opta™.
  • Μάθετε πώς να συνδέετε το Opta™ με το Arduino Cloud

Θα χρειαστείτε:

  • Opta™ PLC (x1)
  • Καλώδιο USB-C® (x1)
  • Arduino IDE 1.8.10+, Arduino IDE 2 ή Arduino Web Editor
  • Τροφοδοτικό 12-24V DC, 1A (προαιρετικό εάν δεν εκτελείται το σημείο που σχετίζεται με τα ρελέ) (x1)
  • Αναλογικές είσοδοι (προαιρετικά, εναλλακτικά το τμήμα που αφορά τις αναλογικές εισόδους θα λειτουργήσει, αλλά διαβάζοντας τυχαίες τιμές)

Οδηγίες

Εγκατάσταση με το Arduino IDE

Βεβαιωθείτε ότι η τελευταία έκδοση του Arduino IDE είναι εγκατεστημένη. Το IDE μπορείτε να το κατεβάσετε από εδώ.

Μέσα από το Arduino IDE εγκαταστήστε τον πυρήνα για το Opta™. Ακολουθήστε το Tools > Board > Boards Manager, και στη συνέχεια στην ενότητα Boards Manager αναζητήστε το Opta mbed και εγκαταστήστε το.

Βρίσκοντας τον πυρήνα Opta™ στο Arduino IDE 2

Τώρα είστε έτοιμοι να φορτώσετε sketches στο Opta™ μέσω του Arduino IDE.

Αφού εγκατασταθούν το IDE και ο πυρήνας, ας ξεκινήσουμε ανεβάζοντας ένα πρώτο sketch στο Opta™ σας. Θα χρησιμοποιήσουμε μια τροποποιημένη έκδοση του κλασικού blink sketch της Arduino για να θέσουμε τη συσκευή σας σε λειτουργία και να ελέγξουμε αν όλα είναι ρυθμισμένα σωστά.

Ας δημιουργήσουμε ένα απλό blink sketch που θα αναβοσβήνει τα τέσσερα STATUS LED του Opta™, τα οποία επισημαίνονται στην παρακάτω εικόνα.

Όλα τα STATUS LED της συσκευής καθορίζονται στον πυρήνα του PLC.

Παρακάτω μπορείτε να δείτε την αντιστοιχία μεταξύ του καθενός τους, όπως προσδιορίζεται στον πυρήνα, και της σήμανσής τους στην πρόσοψη του προϊόντος:

  • LED_D0 : STATUS 1
  • LED_D1: STATUS 2
  • LED_D2: STATUS 3
  • LED_D3: STATUS 4
  • LED_RESET: LED above the reset button
  • LED_USER: το LED πάνω από το κουμπί χρήστη (διαθέσιμο μόνο στο Opta™ με Wi-Fi®/Bluetooth® Low Energy)

Επιλέξτε το σωστό board και τη σωστή θύρα στην ενότητα Εργαλεία (Tools). Αντιγράψτε το παρακάτω sketch στον sketch editor του Arduino IDE και, στη συνέχεια, μεταφορτώστε το στο Opta™. Όταν το sketch φορτωθεί, θα δείτε τις λυχνίες LED STATUS του Opta™ να αναβοσβήνουν διαδοχικά.

/**
  Getting Started with Opta™
  Name: LED_Blink_Opta
  Purpose: Blink STATUS LEDs on Opta™.

  @author Arduino
*/

void setup() {
  pinMode(LED_D0, OUTPUT);
  pinMode(LED_D1, OUTPUT);
  pinMode(LED_D2, OUTPUT);
  pinMode(LED_D3, OUTPUT);
}

void loop() {
  digitalWrite(LED_D0, HIGH);
  delay(100);
  digitalWrite(LED_D0, LOW);
  delay(100);
  
  digitalWrite(LED_D1, HIGH);
  delay(100);
  digitalWrite(LED_D1, LOW);
  delay(100);
  
  digitalWrite(LED_D2, HIGH);
  delay(100);
  digitalWrite(LED_D2, LOW);
  delay(100);
  
  digitalWrite(LED_D3, HIGH);
  delay(100);
  digitalWrite(LED_D3, LOW);
  delay(500);
}

Παραμετροποίηση του προγραμματιζόμενου κουμπιού στο Opta™

Το Opta™ διαθέτει ένα προγραμματιζόμενο κουμπί, το οποίο φαίνεται στην παρακάτω εικόνα και προσδιορίζεται ως USER. Μπορεί να προγραμματιστεί με τη χρήση του Arduino IDE ώστε να ταιριάζει στις ανάγκες σας. Για να δείξουμε πόσο απλό είναι, ας δημιουργήσουμε ένα sketch και ας προγραμματίσουμε το κουμπί αυτό, ως κουμπί που αλλάζει την κατάσταση των STATUS LED .

Το κουμπί ορίζεται στον πυρήνα ως BTN_USER: ‘HIGH’ ως προεπιλογή (όταν δεν είναι πατημένο) και ‘LOW’ όταν είναι πατημένο. Το νέο sketch θα ανάψει τα STATUS LED ένα προς ένα όταν πατηθεί το κουμπί και στη συνέχεια θα ξεκινήσει από την αρχή όταν όλα τα φωτάκια έχουν ανάψει. Παρακάτω μπορείτε να βρείτε ολόκληρο το sketch, όπου χρησιμοποιείται μια απλή εντολή Switch (case).

/**
  Getting Started with Opta™
  Name: Programmable_Button_Opta
  Purpose: Configures the programmable button to control STATUS LED sequence.

  @author Arduino
*/

int buttonState = 0;
int counter = 0;

void setup() {
  // Initialize OPTA LEDs
  pinMode(LED_D0, OUTPUT);
  pinMode(LED_D1, OUTPUT);
  pinMode(LED_D2, OUTPUT);
  pinMode(LED_D3, OUTPUT);
  pinMode(BTN_USER, INPUT);
}

// The loop function runs over and over again while the device is on
void loop() {
  buttonState = digitalRead(BTN_USER);
  if(buttonState == LOW){
    if(counter < 4){
      counter++;
    }
    else{
      counter = 0;
    }
    delay(100);
  }
  changeLights();
}

/**
  Function to control STATUS LED based on the counter.
*/
void changeLights() {
  switch(counter){
    case 0:
      digitalWrite(LED_D0, LOW);
      digitalWrite(LED_D1, LOW);
      digitalWrite(LED_D2, LOW);
      digitalWrite(LED_D3, LOW);
      break;
    case 1:
      digitalWrite(LED_D0, HIGH);
      break;
    case 2:
      digitalWrite(LED_D1, HIGH);
      break;
    case 3:
      digitalWrite(LED_D2, HIGH);
      break;
    case 4:
      digitalWrite(LED_D3, HIGH);
      break;
  }
  delay(100);
}

Μόλις ανέβει το sketch, μπορείτε να δείτε ότι ένα επιπλέον LED ανάβει κάθε φορά που πατάτε το κουμπί, ακολουθώντας την παρακάτω αλληλουχία:

Πάτημα κουμπιούΑποτέλεσμα
Πρώτη φοράΑνάβει το STATUS LED 1
Δεύτερη φοράΑνάβουν τα STATUS LED 1 και 2
Τρίτη φοράΑνάβουν τα STATUS LED 1, 2 και 3
Τέταρτη φοράΑνάβουν τα STATUS LED 1, 2, 3 και 4
Πέμπτη φοράΌλα τα τα STATUS LED σβήνουν και ο μετρητής μηδενίζεται

Χρησιμοποιώντας τα ρελέ εξόδου του Opta™

Το Opta™ διαθέτει 4 ρελέ εξόδου, που αποτελούνται από 4 κανονικά ανοικτά (NO) ηλεκτρομηχανικά ρελέ (SPST) με χωρητικότητα 10Α στα 250V AC (λαμβάνοντας υπόψη ένα ωμικό φορτίο). Χαρακτηρίζονται ως OUTPUTS και βρίσκονται στο κάτω μέρος του Opta™, όπως φαίνεται στην παρακάτω εικόνα.

Τα πηνία κάθε ρελέ αντιστοιχούν στους ακροδέκτες D0 έως D3 ως εξής:

OutputPinΟνομασία
OUTPUT 1D0Ρελε 1
ΟUTPUT 2D1Ρελε 2
ΟUTPUT 3D2Ρελε 3
ΟUTPUT 4D3Ρελε 4

Οι επαφές εξόδου Opta™ είναι “καθαρές” επαφές, πράγμα που σημαίνει ότι δεν είναι ενεργές σε ένα σενάριο “μη σύνδεσης”. Αυτός ο τύπος επαφής μπορεί να χρησιμοποιηθεί σε οποιοδήποτε σύστημα και με μεγάλο εύρος τάσης. Για να λειτουργήσουν σωστά, οι έξοδοι πρέπει επομένως να συνδεθούν φέρνοντας, για παράδειγμα, ένα καλώδιο τροφοδοσίας σε έναν από τους ακροδέκτες και συνδέοντας το φορτίο στην έξοδο του άλλου ακροδέκτη.

Με αυτόν τον τρόπο, όταν η επαφή είναι κλειστή από τη λογική που έχει οριστεί στον προγραμματισμό, το σήμα της τροφοδοσίας θα περάσει από την επαφή μεταφέροντας το σήμα στο φορτίο αναφοράς.

Η “καθαρή” επαφή επιτρέπει επίσης τη μεταφορά διαφορετικού συστήματος τροφοδοσίας ή τύπου φορτίου για κάθε επαφή εξόδου, καθιστώντας δυνατό τον έλεγχο πολλαπλών συσκευών ή σημάτων που χρησιμοποιούν διαφορετικά επίπεδα τάσης.

Ας τρέξουμε ένα απλό sketch για να δοκιμάσουμε τα ρελέ εξόδου στο Opta™: σε αυτό το sketch, και τα 4 ρελέ κλείνουν και ανοίγουν ξανά τις επαφές τους και μετά τον κύκλο κάθε ρελέ, ένα LED θα ανάψει για να παρέχει οπτική πληροφόρηση. Για να ενεργοποιήσετε τα ρελέ και να τρέξετε αυτό το sketch, πρέπει να τροφοδοτήσετε το Opta™ με τάση 12 έως 24 V DC, συνδέοντάς το με ένα κατάλληλο τροφοδοτικό.

Το Opta™ διαθέτει ακροδέκτες για τροφοδοσία ρεύματος στο επάνω μέρος του και δίπλα στις εισόδους.

Αυτοί οι ακροδέκτες είναι πολωμένοι, επομένως είναι υποχρεωτικό να τηρείτε αυστηρά την πολικότητα του τροφοδοτικού, συνδέοντας το θετικό βύσμα του τροφοδοτικού στο “+” και το αρνητικό στο “-“.

Μπορείτε να βρείτε ολόκληρο το sketch παρακάτω, να το αντιγράψετε στο IDE σας και να το ανεβάσετε στη συσκευή σας.

/**

  Getting Started with Opta™

  Name: Output_Relay_Opta

  Purpose: Test output relays of the Opta™.


  @author Arduino

*/


void setup() {

  // Initialize Relays outputs

  pinMode(D0, OUTPUT);

  pinMode(D1, OUTPUT);

  pinMode(D2, OUTPUT);

  pinMode(D3, OUTPUT);


  // Initialize Opta LEDs

  pinMode(LED_D0, OUTPUT);

  pinMode(LED_D1, OUTPUT);

  pinMode(LED_D2, OUTPUT);

  pinMode(LED_D3, OUTPUT);

}


void loop() {

  // Closes and opens the contact of relay 1 and turns on/off led 1

  digitalWrite(D0, HIGH); // Sets the relay 1 on

  digitalWrite(LED_D0, HIGH);

  delay(1000);

  digitalWrite(D0, LOW); // Sets the relay 1 off

  digitalWrite(LED_D0, LOW);

  delay(1000);


  // Closes and opens the contact of relay 2 and turns on/off led 2

  digitalWrite(D1, HIGH); // Sets the relay 2 on

  digitalWrite(LED_D1, HIGH);

  delay(1000); 

  digitalWrite(D1, LOW); // Sets the relay 2 off

  digitalWrite(LED_D1, LOW);

  delay(1000);


  // Closes and opens the contact of relay 3 and turns on/off led 3

  digitalWrite(D2, HIGH); // Sets the relay 3 on

  digitalWrite(LED_D2, HIGH);

  delay(1000);

  digitalWrite(D2, LOW); // Sets the relay 3 off

  digitalWrite(LED_D2, LOW);

  delay(1000);  

  //  Closes and opens the contact of relay 4 and turns on/off led 4

  digitalWrite(D3, HIGH); // Sets the relay 4 on

  digitalWrite(LED_D3, HIGH);

  delay(1000);

  digitalWrite(D3, LOW); // Sets the relay 4 off

  digitalWrite(LED_D3, LOW);

  delay(1000);

}

Χρησιμοποιώντας τις εισόδους του Opta™ PLC

Το Opta™ διαθέτει 8 ακροδέκτες εισόδου που μπορούν να προγραμματιστούν ώστε να χρησιμοποιούνται ως αναλογικοί ή ψηφιακοί. Η αντιστοίχιση μεταξύ της σήμανσης στους φυσικούς ακροδέκτες του Opta™ (I1 έως I8) και του προσδιορισμού τους στον πυρήνα βρίσκεται παρακάτω:

ΘύραΟνομασία στον πυρήναΑναγνωριστικό
I1A0PIN_A0
I2A1PIN_A1
I3A2PIN_A2
I4A3PIN_A3
I5A4PIN_A4
I6A5PIN_A5
I7A6PIN_A6
I8A7PIN_A7

Οι 8 ακροδέκτες εισόδου μπορούν να χρησιμοποιηθούν ως ψηφιακοί (με τις λογικές τιμές LOW ή HIGH) ή ως αναλογικοί (σε εύρος από 0 έως 10V).

  • Για να τους χρησιμοποιήσετε ως ψηφιακές εισόδους, προσθέστε την εντολή Arduino pinMode(pinName, INPUT); μέσα στην εντολή setup()
  • Για να τους χρησιμοποιήσετε ως αναλογικές εισόδους, προσθέστε την εντολή analogReadResolution(); με την ανάλυση bit που θέλετε να χρησιμοποιήσετε.

Ας δοκιμάσουμε τώρα ένα sketch που θα διαβάζει τις αναλογικές εισόδους του Opta™. Οι είσοδοι έχουν εύρος μεταξύ 0 και 10V.

Η μέγιστη τάση που διαχειρίζεται ο μικροελεγκτής είναι 3V. Αυτή η μέγιστη τάση είναι σημαντική για τον υπολογισμό της τάσης εισόδου χρησιμοποιώντας την σε συνδυασμό με τον συντελεστή ανάλυσης των ADCs. Η ανάλυση αυτή διαμορφώνεται μέσα στο πρόγραμμα με εύρος τιμών μεταξύ 12 bit (4095) και 16 bit (65535).

Για τη λήψη και την εμφάνιση της κατάλληλης τιμής τάσης που διαβάζεται από την είσοδο, πρέπει να μετατρέψουμε την τιμή που διαβάζεται από την εντολή analogRead και να εφαρμόσουμε έναν συντελεστή αναδιαβάθμισης 0,3 (rescaling factor), ο οποίος καθορίζεται από τον εσωτερικό κατανεμητή τάσης. Το sketch θα διαβάσει τις εισόδους στους αναλογικούς ακροδέκτες A0, A1 και A2 και στη συνέχεια θα εμφανίσει το αποτέλεσμα στη σειριακή οθόνη.

/**
  Getting Started with Opta™
  Name: Analog_Inputs_Opta
  Purpose: Test analog pins A0, A1 and A2 as inputs on Opta™.

  @author Arduino
*/

void setup() {
   Serial.begin(9600);
   // 65535 is the max value with 16 bits resolution set by analogReadResolution(16)
   // 4095 is the max value with 12 bits resolution set by analogReadResolution(12)
   analogReadResolution(12);
}

void loop() {
   // Read the input on analog input I1 corresponding to A0:
   int sensorValueA0 = analogRead(A0);
   float voltageA0 = sensorValueA0 * (3.0 / 4095.0)/ 0.3;
   
   // Print out the value you read from I1 to the max value for the analog inputs resolution:
   Serial.print("I1 value: ");
   Serial.print(sensorValueA0);
   Serial.print(" corresponding to ");
   Serial.print(voltageA0, 5); // Print the voltage as a float with 5 decimal digits
   Serial.println("Volts");
   
   // Read the input on analog input I2 corresponding to A1:
   int sensorValueA1 = analogRead(A1);
   float voltageA1 = sensorValueA1 * (3.0 / 4095.0)/0.3;

   Serial.print("I2 value: ");
   Serial.print(sensorValueA1);
   Serial.print(" corresponding to ");
   Serial.print(voltageA1, 5); // Print the voltage as a float with 5 decimal digits
   Serial.println("Volts");
   
   // Read the input on analog input I3 corresponding to A2:
   int sensorValueA2 = analogRead(A2);
   float voltageA2 = sensorValueA2 * (3.0 / 4095.0)/0.3;

   Serial.print("I3 value: ");
   Serial.print(sensorValueA2);
   Serial.print(" corresponding to ");
   Serial.print(voltageA2, 5); // Print the voltage as a float with 5 decimal digits
   Serial.println("Volts");

   delay(1000);
}

Όταν ανεβάσετε τον κώδικα στο PLC, ανοίξτε τη σειριακή οθόνη για να δείτε τις τιμές που διαβάζονται σε κάθε αναλογική είσοδο. Εάν έχετε συνδέσει μια συσκευή με αναλογική τιμή τάσης στα I1, I2 και/ή I3, θα βλέπετε την τάση ή την αναλογική τιμή κάθε σήματος. Σε περίπτωση που δεν έχετε συνδέσει τίποτα στις αναλογικές εισόδους, θα παρατηρήσετε τις τιμές να κυμαίνονται γύρω από τα 0V επειδή οι ακροδέκτες είναι “στον αέρα”.

Μπορεί να παρατηρήσετε από τις τιμές εξόδου ότι όταν η μέγιστη τιμή φτάσει τα 10V, η αντίστοιχη αριθμητική τιμή δεν είναι 4095, όπως θα έπρεπε να είναι η μέγιστη τιμή σε ανάλυση 12 bit. Αυτό οφείλεται στο προληπτικό όριο ασφάλειας που λαμβάνεται στο μέγιστο επίπεδο τάσης που εφαρμόζεται στις εισόδους για τη διατήρηση της ακεραιότητας του μικροελεγκτή.

Συνδέοντας το Opta™ με το Cloud

Μπορείτε να χρησιμοποιήσετε το Opta™ με το Arduino Cloud. Για να συνδέσετε το Opta™ στο cloud, επισκεφτείτε τη σελίδα του Arduino Cloud. Για βοήθεια σχετικά με το πώς να ξεκινήσετε με το cloud, ανατρέξτε στο tutorial Τα πρώτα βήματα στο Arduino cloud.

Συμπεράσματα

Σε αυτό το tutorial παρουσιάστηκαν τα βασικά σημεία της λειτουργίας του Opta™. Τώρα ξέρετε πώς να χρησιμοποιείτε και να προγραμματίζετε τα LED και το κουμπί του PLC (για να δημιουργείτε πρόσθετες λειτουργίες και χαρακτηριστικά), να προγραμματίζετε τα ρελέ και να διαβάζετε τις μετρήσεις στις ψηφιακές και αναλογικές εισόδους. Με τη δυνατότητα σύνδεσης του Opta™ με το Arduino Cloud, το Opta™ μπορεί να προγραμματιστεί online, να δημιουργήσει περιβάλλοντα HMI προσβάσιμα σε οποιαδήποτε συσκευή, ακόμη και να αναβαθμιστεί μέσω OTA χρησιμοποιώντας επαγγελματικά συστήματα κρυπτογράφησης για επιπλέον ασφάλεια.

Δείτε τα διαθέσιμα μοντέλα εδω!

Γνωρίζοντας την Arduino

Το Arduino Cloud ενσωματώνει Python και JavaScript για νέα IoT projects

Εύκολο Machine Learning με το Arduino_KNN

Φτιάξτε τα πιο δημιουργικά δώρα Χριστουγέννων!