Πίνακας περιεχομένων:

INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU: 5 βήματα
INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU: 5 βήματα

Βίντεο: INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU: 5 βήματα

Βίντεο: INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU: 5 βήματα
Βίντεο: IR remote controlled vehicle robot with ATmega32 2024, Ιούλιος
Anonim
INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU
INFRA RED REMOTE CONTROLLED ROBOCAR USING AVR (ATMEGA32) MCU

Το παρόν ΕΡΓΟ περιγράφει το σχεδιασμό και την εφαρμογή ενός υπέρυθρου (IR) τηλεχειριζόμενου RoboCar που μπορεί να χρησιμοποιηθεί για διάφορες αυτοματοποιημένες μη επανδρωμένες εφαρμογές ελέγχου. Έχω σχεδιάσει τηλεχειριζόμενο RoboCar (κίνηση αριστερά-δεξιά/εμπρός-πίσω). Ολόκληρο το σύστημα βασίζεται σε μικροελεγκτή (Atmega32) που κάνει το σύστημα ελέγχου πιο έξυπνο και εύκολο να τροποποιηθεί για άλλες εφαρμογές. Επιτρέπει στο χρήστη να χειρίζεται ή να ελέγχει ένα RoboCar και να λειτουργεί το διακόπτη ρεύματος από απόσταση περίπου 5 μέτρων.

Λέξεις κλειδιά: Αποκωδικοποιητής IR, Μικροελεγκτής AVR (Atmega32), Τηλεχειριστήριο τηλεόρασης, Ασύρματη επικοινωνία

_

Βήμα 1: IntraRed Επικοινωνία

IntraRed Επικοινωνία
IntraRed Επικοινωνία

Αρχή επικοινωνίας IR:

α) μετάδοση IR

Ο πομπός ενός IR LED στο κύκλωμά του, το οποίο εκπέμπει υπέρυθρο φως για κάθε ηλεκτρικό παλμό που του δίνεται. Αυτός ο παλμός δημιουργείται καθώς πιέζεται ένα κουμπί στο τηλεχειριστήριο, ολοκληρώνοντας έτσι το κύκλωμα, παρέχοντας προκατάληψη στο LED. Το LED που είναι προκατειλημμένο εκπέμπει φως μήκους κύματος 940nm ως μια σειρά παλμών, που αντιστοιχεί στο πατημένο κουμπί. Ωστόσο, καθώς μαζί με το IR LED πολλές άλλες πηγές υπέρυθρου φωτός, όπως εμείς οι άνθρωποι, οι λαμπτήρες, ο ήλιος κ.λπ., οι μεταδιδόμενες πληροφορίες μπορούν να παρεμβαίνουν. Μια λύση σε αυτό το πρόβλημα είναι η διαμόρφωση. Το μεταδιδόμενο σήμα διαμορφώνεται χρησιμοποιώντας συχνότητα φορέα 38 KHz (ή οποιαδήποτε άλλη συχνότητα μεταξύ 36 και 46 KHz). Το IR LED είναι ταλαντωμένο σε αυτή τη συχνότητα για τη χρονική διάρκεια του παλμού. Οι πληροφορίες ή τα φωτεινά σήματα διαμορφώνονται στο πλάτος του παλμού και περιέχονται στη συχνότητα των 38 KHz. Η υπέρυθρη μετάδοση αναφέρεται στην ενέργεια στην περιοχή του φάσματος ηλεκτρομαγνητικής ακτινοβολίας σε μήκη κύματος μεγαλύτερα από αυτά του ορατού φωτός, αλλά μικρότερα από αυτά των ραδιοκυμάτων. Αντίστοιχα, οι υπέρυθρες συχνότητες είναι υψηλότερες από αυτές των μικροκυμάτων, αλλά χαμηλότερες από αυτές του ορατού φωτός. Οι επιστήμονες διαιρούν το φάσμα της υπέρυθρης ακτινοβολίας (IR) σε τρεις περιοχές. Τα μήκη κύματος καθορίζονται σε μικρά (συμβολίζονται μ, όπου 1 μ = 10-6 μέτρα) ή σε νανόμετρα (συντομογραφία nm, όπου 1 nm = 10-9 μέτρα = 0,001 5). Η κοντινή ζώνη IR περιέχει ενέργεια στην περιοχή των μηκών κύματος που είναι πιο κοντά στο ορατό, από περίπου 0,750 έως 1,300 5 (750 έως 1300 nm). Η ενδιάμεση ζώνη IR (που ονομάζεται επίσης μεσαία ζώνη IR) αποτελείται από ενέργεια στην περιοχή 1.300 έως 3.000 5 (1300 έως 3000 nm). Η μακρινή ζώνη IR εκτείνεται από 2.000 έως 14.000 5 (3000 nm έως 1.4000 x 104 nm).

β) Υποδοχή IR

Ο δέκτης αποτελείται από έναν ανιχνευτή φωτογραφιών που αναπτύσσει ένα ηλεκτρικό σήμα εξόδου καθώς προσπίπτει φως πάνω του. Η έξοδος του ανιχνευτή φιλτράρεται χρησιμοποιώντας ένα φίλτρο στενής ζώνης που απορρίπτει όλες τις συχνότητες κάτω ή πάνω από τη συχνότητα φορέα (38 KHz σε αυτή την περίπτωση). Η φιλτραρισμένη έξοδος δίνεται στη συνέχεια στην κατάλληλη συσκευή όπως ένας μικροελεγκτής ή ένας μικροεπεξεργαστής που ελέγχει συσκευές όπως έναν υπολογιστή ή ένα ρομπότ. Η έξοδος από τα φίλτρα μπορεί επίσης να συνδεθεί με το παλμογράφο για την ανάγνωση των παλμών.

Εφαρμογές IR:

Το υπέρυθρο χρησιμοποιείται σε μια ποικιλία εφαρμογών ασύρματης επικοινωνίας, παρακολούθησης και ελέγχου. Ορίστε μερικά παραδείγματα:

· Κουτιά τηλεχειριστηρίου οικιακής ψυχαγωγίας

· Ασύρματο (τοπικά δίκτυα)

· Συνδέσεις μεταξύ φορητών υπολογιστών και επιτραπέζιων υπολογιστών

· Ασύρματο μόντεμ

· Ανιχνευτές εισβολής

· Ανιχνευτές κίνησης

· Αισθητήρες πυρκαγιάς

· Συστήματα νυχτερινής όρασης

· Ιατρικός διαγνωστικός εξοπλισμός

· Συστήματα καθοδήγησης πυραύλων

· Συσκευές γεωλογικής παρακολούθησης

Η μετάδοση δεδομένων IR από μια συσκευή σε άλλη αναφέρεται μερικές φορές ως δέσμη.

Βήμα 2: IR Sensor & NEC Protocol Fromat

IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat

Αισθητήρες IR (Σχήμα 1)

TSOP1738, SFH-5110-38 (38kHz)

Χαρακτηριστικά αισθητήρων TSOP:

  • Ο προενισχυτής και ο ανιχνευτής φωτογραφιών είναι και οι δύο σε μία συσκευασία
  • Εσωτερικό φίλτρο για συχνότητα PCM
  • Βελτιωμένη θωράκιση ενάντια στις διαταραχές του ηλεκτρικού πεδίου
  • Συμβατότητα TTL και CMOS
  • Ενεργή έξοδος χαμηλή Χαμηλή κατανάλωση ενέργειας
  • Υψηλή ανοσία έναντι του φωτός περιβάλλοντος
  • Δυνατότητα συνεχούς μετάδοσης δεδομένων

Πρωτόκολλο NEC:

Το πρωτόκολλο μετάδοσης IR NEC χρησιμοποιεί κωδικοποίηση απόστασης παλμού των δυαδικών ψηφίων μηνυμάτων. Κάθε έκρηξη παλμού έχει μήκος 562,5μs, σε συχνότητα φορέα 38kHz (26,3μs). Τα λογικά δυαδικά ψηφία μεταδίδονται ως εξής (Σχήμα 2):

  • Λογικό «0» - έκρηξη παλμού 562,5μs ακολουθούμενο από χώρο 562,5μs, με συνολικό χρόνο μετάδοσης 1,125ms
  • Λογικό «1» - έκρηξη παλμού 562,5μs ακολουθούμενο από χώρο 1.6875ms, με συνολικό χρόνο μετάδοσης 2,25ms

Ο παλμός φορέα αποτελείται από 21 κύκλους στα 38kHz. Οι παλμοί συνήθως έχουν λόγο σήματος/χώρου 1: 4, για να μειώσουν την τρέχουσα κατανάλωση:

(Εικ.3)

Κάθε ακολουθία κώδικα ξεκινά με έναν παλμό 9ms, γνωστό ως παλμό AGC. Ακολουθεί σιωπή 4,5ms:

(Εικ. 4)

Τα δεδομένα στη συνέχεια αποτελούνται από 32 bit, μια διεύθυνση 16 bit ακολουθούμενη από μια εντολή 16 bit, που εμφανίζεται με τη σειρά με την οποία διαβιβάζονται (από αριστερά προς τα δεξιά):

(Εικ. 5)

Τα τέσσερα byte των bit δεδομένων αποστέλλονται το καθένα πρώτα με το λιγότερο σημαντικό bit. Το σχήμα 1 απεικονίζει τη μορφή ενός πλαισίου μετάδοσης IR NEC, για μια διεύθυνση 00h (00000000b) και μια εντολή ADh (10101101b).

Συνολικά απαιτούνται 67,5ms για τη μετάδοση ενός πλαισίου μηνύματος. Χρειάζονται 27ms για τη μετάδοση των 16 bits διεύθυνσης (διεύθυνση + αντίστροφη) και τα 16 bits εντολής (εντολή + αντίστροφη).

(Εικ 6)

Χρόνος που απαιτείται για τη μετάδοση του πλαισίου:

Τα 16 bit για τη διεύθυνση (διεύθυνση + αντίστροφη) απαιτούν 27ms για τη μετάδοση του χρόνου. Και τα 16 bits για την εντολή (εντολή + αντίστροφη) απαιτούν επίσης 27ms για τη μετάδοση του χρόνου. επειδή (διεύθυνση + αντίστροφη διεύθυνση) ή (εντολή + αντίστροφη εντολή) θα περιέχει πάντα 8 '0 και 8' 1 '(8 * 1.125ms) + (8 * 2.25ms) == 27 ms. σύμφωνα με αυτόν τον συνολικό χρόνο που απαιτείται για τη μετάδοση του πλαισίου είναι (9ms +4.5ms +27ms +27ms) = 67.5 ms.

ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΚΩΔΙΚΟΙ: Εάν το κλειδί στο τηλεχειριστήριο παραμείνει πατημένο, θα εκδοθεί ένας κωδικός επανάληψης, συνήθως περίπου 40ms μετά την έκρηξη του παλμού που σήμαινε το τέλος του μηνύματος. Ένας κωδικός επανάληψης θα συνεχίσει να αποστέλλεται σε διαστήματα 108ms, έως ότου απελευθερωθεί τελικά το κλειδί. Ο κωδικός επανάληψης αποτελείται από τα ακόλουθα, με τη σειρά:

  • έκρηξη παλμού που οδηγεί 9ms
  • χώρος 2,25ms
  • ένας παλμός 562,5μs έσκασε για να σηματοδοτήσει το τέλος του χώρου (και ως εκ τούτου το τέλος του εκπεμπόμενου κωδικού επανάληψης).

(Εικ.7)

Υπολογισμός καθυστέρησης (1ms):

Συχνότητα ρολογιού = 11.0592 Mhz

Κύκλος μηχανής = 12

Καθυστέρηση = 1ms

TimerValue = 65536 - ((Καθυστέρηση * ClockFreq)/Κύκλος μηχανής) = 65536 - ((1ms * 11.0592Mhz)/12)

= 65536 - 921 = 0xFC67

Βήμα 3: Έλεγχος κινητήρα DC με χρήση L293D

Έλεγχος κινητήρα DC χρησιμοποιώντας L293D
Έλεγχος κινητήρα DC χρησιμοποιώντας L293D

DC Motor

Ένας κινητήρας DC μετατρέπει την ηλεκτρική ενέργεια σε μηχανική ενέργεια που μπορεί να χρησιμοποιηθεί για να κάνει πολλές χρήσιμες εργασίες. Μπορεί να παράγει μηχανική κίνηση όπως Go Forward/Backword of my RoboCar. Οι κινητήρες συνεχούς ρεύματος διατίθενται σε διάφορες αξιολογήσεις, όπως 6V και 12V. Έχει δύο καλώδια ή ακίδες. Μπορούμε να αντιστρέψουμε την κατεύθυνση περιστροφής αντιστρέφοντας την πολικότητα της εισόδου.

Εδώ προτιμούμε το L293D καθώς η βαθμολογία των 600mA είναι καλή για την οδήγηση μικρών κινητήρων DC και οι δίοδοι προστασίας περιλαμβάνονται στο ίδιο το IC. Η περιγραφή κάθε πείρου έχει ως εξής: Ενεργοποιήστε τις καρφίτσες: Αυτές είναι οι ακίδες αριθ. 1 και καρφίτσα αρ. 9. Καρφίτσα αρ. 1 χρησιμοποιείται για ενεργοποίηση του προγράμματος οδήγησης Half-H 1 και 2. (γέφυρα H στην αριστερή πλευρά). Καρφίτσα αρ. 9 χρησιμοποιείται για να ενεργοποιήσει τον οδηγό γέφυρας H 3 και 4. (γέφυρα H στη δεξιά πλευρά).

Η ιδέα είναι απλή, εάν θέλετε να χρησιμοποιήσετε μια συγκεκριμένη γέφυρα Η πρέπει να δώσετε υψηλή λογική στους αντίστοιχους ακροδέκτες ενεργοποίησης μαζί με την παροχή ρεύματος στο IC. Αυτός ο πείρος μπορεί επίσης να χρησιμοποιηθεί για τον έλεγχο της ταχύτητας του κινητήρα χρησιμοποιώντας την τεχνική PWM. VCC1 (Pin 16): Ακίδα τροφοδοσίας. Συνδέστε το στην τροφοδοσία 5V. VCC2 (Pin 8): Τροφοδοσία κινητήρα. Εφαρμόστε +ve τάση σε αυτό σύμφωνα με την βαθμολογία του κινητήρα. Εάν θέλετε να οδηγήσετε τον κινητήρα σας στα 12V, εφαρμόστε 12V σε αυτόν τον πείρο.

Είναι επίσης δυνατό να οδηγήσετε τον κινητήρα απευθείας σε μια μπαταρία, διαφορετική από αυτήν που χρησιμοποιείται για την τροφοδοσία του κυκλώματος. Απλώς συνδέστε το +ve τερματικό της μπαταρίας στον ακροδέκτη VCC2 και κάντε κοινή την GND και των δύο μπαταριών..

Πρόκειται για ακίδες εισόδου μέσω των οποίων δίνονται σήματα ελέγχου από μικροελεγκτές ή άλλα κυκλώματα/IC. Για παράδειγμα, εάν στον πείρο 2 (Είσοδος του 1ου μισού οδηγού H) δώσουμε τη Λογική 1 (5V), θα έχουμε μια τάση ίση με VCC2 στον αντίστοιχο πείρο εξόδου του οδηγού 1ου μισού Η, δηλ. Τον πείρο αριθ. 3. Ομοίως για το Logic 0 (0V) στο Pin 2, εμφανίζεται το 0V στο Pin 3. Έξοδοι (Pin 3, 6, 11, 14): Εξάγει ακίδες. Σύμφωνα με το σήμα εισόδου, το σήμα εξόδου έρχεται.

Κινητικές Κινήσεις Α Β

-----------------------------------------------------------------------------------------

…………… Στάση: Χαμηλή: Χαμηλή

…… δεξιόστροφα: Χαμηλό: Υψηλό

Αριστερόστροφα: Υψηλό: Χαμηλό

……………. Στάση: Υψηλή: Υψηλή

Βήμα 4: Διαγράμματα κυκλωμάτων για οδηγό κινητήρα και αισθητήρα IR

Διαγράμματα κυκλώματος για οδηγό κινητήρα και αισθητήρα IR
Διαγράμματα κυκλώματος για οδηγό κινητήρα και αισθητήρα IR
Διαγράμματα κυκλώματος για οδηγό κινητήρα και αισθητήρα IR
Διαγράμματα κυκλώματος για οδηγό κινητήρα και αισθητήρα IR
Διαγράμματα κυκλώματος για οδηγό κινητήρα και αισθητήρα IR
Διαγράμματα κυκλώματος για οδηγό κινητήρα και αισθητήρα IR

Το ATmega32 είναι ένας μικροελεγκτής CMOS 8-bit χαμηλής ισχύος που βασίζεται στην ενισχυμένη με AVR αρχιτεκτονική RIS. Εκτελώντας ισχυρές οδηγίες σε έναν μόνο κύκλο ρολογιού, το ATmega32 επιτυγχάνει διεργασίες που πλησιάζουν 1 MIPS ανά MHz επιτρέποντας στον σχεδιαστή συστήματος να βελτιστοποιήσει την κατανάλωση ενέργειας έναντι της ταχύτητας επεξεργασίας.

Ο πυρήνας AVR συνδυάζει ένα πλούσιο σετ εντολών με 32 καταχωρητές εργασίας γενικής χρήσης. Όλοι οι καταχωρητές the32 συνδέονται άμεσα με την Αριθμητική Λογική Μονάδα (ALU), επιτρέποντας την πρόσβαση σε δύο ανεξάρτητους καταχωρητές σε μία μόνο εντολή που εκτελείται σε έναν κύκλο ρολογιού. Η αρχιτεκτονική που προκύπτει είναι πιο αποδοτική στον κώδικα, ενώ επιτυγχάνει αποδόσεις έως και δέκα φορές γρηγορότερα από τους συμβατικούς μικροελεγκτές CISC.

Το ATmega32 παρέχει τις ακόλουθες δυνατότητες:

  • 32 Kbytes προγραμματιζόμενης μνήμης προγράμματος στο σύστημα με δυνατότητα ανάγνωσης-εγγραφής,
  • 1024 byte EEPROM, 2K byte SRAM,
  • 32 γραμμές I/O γενικής χρήσης,
  • 32 μητρώα εργασίας γενικής χρήσης,
  • μια διεπαφή JTAG για το Boundaryscan,
  • Υποστήριξη και προγραμματισμός εντοπισμού σφαλμάτων εντός τσιπ, τρεις ευέλικτοι χρονοδιακόπτες/μετρητές με λειτουργίες σύγκρισης, εσωτερικές και εξωτερικές διακοπές, σειριακό προγραμματιζόμενο USART, σειριακή διεπαφή προσανατολισμένη σε δύο byte, 8 καναλιών,
  • ADC 10-bit με προαιρετικό στάδιο διαφορικής εισόδου με προγραμματιζόμενο κέρδος (μόνο πακέτο TQFP),
  • ένα προγραμματιζόμενο χρονόμετρο Watchdog με εσωτερικό ταλαντωτή,
  • μια σειριακή θύρα SPI, και
  • έξι λειτουργίες εξοικονόμησης ενέργειας με δυνατότητα επιλογής λογισμικού.

    • Η κατάσταση αναμονής σταματά την CPU ενώ επιτρέπει το USART,
    • Διπλή καλωδίωση, A/D Converter,
    • SRAM,
    • Χρονόμετρο/μετρητές,
    • Θύρα SPI και
    • διακοπή του συστήματος για να συνεχίσει τη λειτουργία του.
    • Η λειτουργία απενεργοποίησης αποθηκεύει τα περιεχόμενα του καταχωρητή αλλά παγώνει τον ταλαντωτή, απενεργοποιώντας όλες τις άλλες λειτουργίες τσιπ μέχρι την επόμενη εξωτερική διακοπή ή επαναφορά υλικού.
    • Στη λειτουργία εξοικονόμησης ενέργειας, ο ασύγχρονος χρονοδιακόπτης συνεχίζει να λειτουργεί, επιτρέποντας στον χρήστη να διατηρήσει μια βάση χρονοδιακόπτη ενώ η υπόλοιπη συσκευή κοιμάται.
    • Η λειτουργία μείωσης θορύβου ADC σταματά την CPU και όλες τις μονάδες εισόδου/εξόδου εκτός από τον ασύγχρονο χρονοδιακόπτη και το ADC, για να ελαχιστοποιήσει τον θόρυβο μεταγωγής κατά τη διάρκεια μετατροπών ADC
    • Στην κατάσταση αναμονής, ο ταλαντωτής κρυστάλλου/συντονισμού λειτουργεί ενώ η υπόλοιπη συσκευή κοιμάται. Αυτό επιτρέπει πολύ γρήγορη εκκίνηση σε συνδυασμό με χαμηλή κατανάλωση ενέργειας.
    • Στη λειτουργία Extended Standby, τόσο ο κύριος ταλαντωτής όσο και ο ασύγχρονος χρονοδιακόπτης συνεχίζουν να λειτουργούν.

Όλα τα σχετικά κυκλώματα δίνονται εδώ και δίνεται επίσης το κύριο κύκλωμα (atmega32).

Βήμα 5: Προγράμματα Avr

Προγράμματα Avr
Προγράμματα Avr
Προγράμματα Avr
Προγράμματα Avr

1. Για "απομακρυσμένο αισθητήρα":

#συμπεριλάβω #συμπεριλάβω

#include "remote.h"

// Globals volatile unsigned int Time; // Κύριος χρονοδιακόπτης, αποθηκεύει το χρόνο σε 10us, // Ενημερώθηκε από ISR (TIMER0_COMP) πτητικό ανυπόγραφο char BitNo. // Θέσεις του επόμενου BIT πτητικού χωρίς υπογραφή char ByteNo; // Pos του τρέχοντος Byte

πτητικό ανυπόγραφο char IrData [4]; // Τα τέσσερα Bytes δεδομένων του πακέτου Ir // 2-Byte Διεύθυνση 2-Byte Δεδομένα πτητικά unsigned char IrCmdQ [QMAX]; // Λήφθηκε η τελική εντολή (Buffer)

πτητικό ανυπόγραφο char PrevCmd; // Χρησιμοποιείται για επανάληψη

// Μεταβλητές που χρησιμοποιούνται για την έναρξη της επανάληψης μόνο αφού πατηθεί ένα πλήκτρο για συγκεκριμένο χρόνο

πτητικός ανυπόγραφος χαρακτήρας Επανάληψη // 1 = ναι 0 = όχι πτητικό ανυπόγραφο char RCount; // Επανάληψη καταμέτρησης

πτητικό char QFront = -1, QEnd = -1;

ασταθές ανυπόγραφο χαρακτήρα // Κατάσταση δέκτη

πτητικό ανυπόγραφο char Edge. // Άκρο διακοπής [RISING = 1 OR FALLING = 0]

πτητικό ανυπόγραφο int stop?

/********************************************* ***************************************** / /*FUNCTIONSSTARTS* / / ******************************************** ******************************************

void RemoteInit () {

char i? για (i = 0; i <4; i ++) IrData = 0;

στάση = 0; Κατάσταση = IR_VALIDATE_LEAD_HIGH; Edge = 0; Επανάληψη = 0;

// Ρύθμιση χρονοδιακόπτη1 // ------------ TCCR0 | = ((1 <

TIMSK | = (1 <

OCR0 = TIMER_COMP_VAL; // Ορισμός σύγκρισης τιμής

ανυπόγραφο char GetRemoteCmd (char char) {unsigned char cmd;

εάν (περιμένετε) ενώ (QFront ==-1); αλλιώς εάν (QFront ==-1) επιστροφή (RC_NONE)?

cmd = IrCmdQ [QFront];

εάν (QFront == QEnd) QFront = QEnd = -1; else {if (QFront == (QMAX-1)) QFront = 0; αλλιώς QFront ++; }

επιστροφή cmd?

}

2. κύρια ():

int main (άκυρο) {

uint8_t cmd = 0; DDRB = 0x08;

DDRD = 0x80;

DDRC = 0x0f; PORTC = 0x00;

while (1) // Infinite Loop to active IR-sensor {

cmd = GetRemoteCmd (1);

διακόπτης (cmd) {

περίπτωση xx: {// BOT Μετακινείται προς τα εμπρός // Ch+ btn forwardmotor ();

Διακοπή; // Και οι δύο κινητήρες σε Forward Direction

}

………………………………………………….

………………………………………………….

………………………………………………….

προεπιλογή: PORTC = 0x00; διάλειμμα; // Σταματούν αριστερά και δεξιά μοτέρ}

}

}/*Τέλος κύριου*/

……………………………………………………………………………………………………………………

// Είναι βασικό μοντέλο, αλλά μπορώ να το χρησιμοποιήσω σε λειτουργία PWM.

//…………………………………………….. Καλα να περνατε……………………………………………………//

Συνιστάται: