Η συνεργασία με το Arduino μπορεί να είναι μια συναρπαστική εμπειρία. Η ικανότητα να μετατρέπετε τις δημιουργικές σας ιδέες σε λειτουργικό πρωτότυπο είναι ένα πραγματικά ικανοποιητικό συναίσθημα.
Ωστόσο, ενώ το Arduino IDE είναι ένα απίστευτα φιλικό προς το χρήστη πακέτο λογισμικού για κωδικοποίηση, είναι συνηθισμένο να αντιμετωπίζετε σφάλματα και σφάλματα που μπορεί να είναι απογοητευτικά. Ίσως ο κώδικάς σας να μην γίνει μεταγλώττιση, το σκίτσο σας να μην ανέβει ή η σειριακή οθόνη σας βγάζει ασυναρτησίες. Όποιο και αν είναι το πρόβλημα, μπορεί να είναι απογοητευτικό και αποθαρρυντικό, ειδικά αν είστε νέος στην πλατφόρμα Arduino.
Συνοψίσαμε μια λίστα με ιδέες αντιμετώπισης προβλημάτων που μπορούν να σας βοηθήσουν να θέσετε σε λειτουργία το έργο σας γρήγορα.
Ποια είναι τα πιο συνηθισμένα σφάλματα κατά τη χρήση του Arduino;
Τα σφάλματα μπορεί να κυμαίνονται από απλά συντακτικά σφάλματα έως πιο σύνθετα ζητήματα υλικού. Τα σφάλματα υλικού δεν είναι πολύ συνηθισμένα κατά τη χρήση του Arduino. Αυτά τα σφάλματα μπορεί να είναι ιδιαίτερα απογοητευτικά, καθώς συχνά απαιτούν φυσική επιθεώρηση των στοιχείων υλικού για τη διάγνωση και την επιδιόρθωση. Από την άλλη πλευρά, τα προβλήματα λογισμικού είναι αρκετά συνηθισμένα.
Ακολουθούν ορισμένα κοινά σφάλματα που μπορεί να συναντήσετε όταν χρησιμοποιείτε το Arduino IDE.
1. Η σειριακή θύρα δεν βρέθηκε
Αυτό το μήνυμα σφάλματος υποδεικνύει ότι ο υπολογιστής δεν μπορεί να εντοπίσει την πλακέτα Arduino. Αυτό μπορεί να προκληθεί από διάφορα ζητήματα, όπως ένα ελαττωματικό καλώδιο USB, μια εσφαλμένη ρύθμιση θύρας COM ή μια κατεστραμμένη πλακέτα. Για να επιλύσετε αυτό το ζήτημα, δοκιμάστε να επανασυνδέσετε την πλακέτα ή να αλλάξετε τη ρύθμιση της θύρας COM στο IDE.
Ορισμένοι φθηνότεροι κλώνοι Arduino χρησιμοποιούν το τσιπ μετατροπέα CH340 USB σε σειριακό αντί για το τυπικό τσιπ FTDI (FT232RL) που χρησιμοποιείται από επίσημες πλακέτες Arduino. Σημειώστε ότι υπάρχουν πλεονεκτήματα και μειονεκτήματα της χρήσης κλώνων Arduino στα έργα σας. Σε αντίθεση με τις τυπικές πλακέτες Arduino, τα προγράμματα οδήγησης για το τσιπ CH340 δεν περιλαμβάνονται στο αρχείο εγκατάστασης IDE.
Για να χρησιμοποιήσετε μια πλακέτα Arduino που βασίζεται σε CH340, πρέπει να κάνετε λήψη και εγκατάσταση του προγράμματος οδήγησης για το τσιπ ξεχωριστά. Για περισσότερες πληροφορίες, ανατρέξτε στον οδηγό εγκατάστασης προγραμμάτων οδήγησης CH340 στο SparkFun δικτυακός τόπος.
2. Ο προγραμματιστής δεν ανταποκρίνεται
Θα δείτε αυτό το μήνυμα σφάλματος στη σειριακή οθόνη όταν προσπαθείτε να ανεβάσετε το σκίτσο σας:
avrdude: stk500_recv(): προγραμματιστής είναιδεν απαντώντας
Για να διορθώσετε αυτό το σφάλμα, υπάρχουν πολλά βήματα αντιμετώπισης προβλημάτων που μπορείτε να ακολουθήσετε:
- Βεβαιωθείτε ότι έχουν επιλεγεί οι σωστές ρυθμίσεις πλακέτας και θύρας.
- Βεβαιωθείτε ότι το καλώδιο USB είναι σωστά τοποθετημένο τόσο στην πλακέτα Arduino όσο και στον υπολογιστή.
- Ελέγξτε εάν το υλικολογισμικό της πλακέτας είναι ενημερωμένο. Μερικές φορές το ξεπερασμένο υλικολογισμικό μπορεί να προκαλέσει προβλήματα επικοινωνίας με τον υπολογιστή.
- Δοκιμάστε να επαναφέρετε την πλακέτα Arduino ή να την ενεργοποιήσετε αποσυνδέοντας και επανασυνδέοντας το καλώδιο USB.
Εάν αυτά δεν λειτουργούν, δοκιμάστε να ανεβάσετε το σκίτσο από διαφορετικό υπολογιστή ή χρησιμοποιώντας διαφορετικό καλώδιο USB.
3. Δεν επιτρέπεται η άδεια
Εάν αντιμετωπίσετε αυτό το σφάλμα όταν προσπαθείτε να ανεβάσετε ένα σκίτσο στο Arduino σας, αυτό σημαίνει ότι το IDE δεν έχει άδεια ανάγνωσης/εγγραφής στη σειριακή θύρα. Αυτό συμβαίνει κυρίως για χρήστες Ubuntu.
Θα δείτε αυτό το μήνυμα σφάλματος στη σειριακή οθόνη:
avrdude: ser_open(): δεν μπορώ να ανοίξω τη συσκευή "/dev/ttyACM0": Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
Για να το διορθώσετε, πληκτρολογήστε την ακόλουθη εντολή στο τερματικό:
sudo chmod a+rw /dev/ttyACM0
Αυτό θα επιτρέψει σε όλους τους χρήστες να διαβάζουν και να γράφουν στο /dev/ttyACM0 συσκευή σειριακής θύρας. Λάβετε υπόψη ότι το όνομα της συγκεκριμένης συσκευής μπορεί να διαφέρει ανάλογα με τη διαμόρφωση του συστήματός σας. Εάν χρησιμοποιείτε Windows, δοκιμάστε να εκτελέσετε το Arduino IDE σε λειτουργία διαχειριστή.
4. Λήξη χρονικού ορίου Επικοινωνίας με τον Προγραμματιστή
Ένα σφάλμα χρονικού ορίου στο Arduino IDE μπορεί να προκύψει όταν το IDE δεν μπορεί να επικοινωνήσει με την πλακέτα Arduino εντός ενός καθορισμένου χρονικού ορίου.
avrdude: stk500v2_ReceiveMessage(): timeoutavrdude: stk500v2_getsync(): timeout επικοινωνία με programmeravrdude: stk500v2_command(): απέτυχε άθλιως προς τηνεκτέλεση εντολή 0x11avrdude: stk500v2_disable(): απέτυχεπρος την εγκαταλείψουν τον προγραμματισμό τρόπος
Αυτό το μήνυμα σφάλματος εμφανίζεται όταν η πλακέτα Arduino δεν λαμβάνει δεδομένα από τον υπολογιστή εντός ενός καθορισμένου χρονικού πλαισίου. Είναι αρκετά κοινό με τους Κινέζους κλώνους. Αυτό μπορεί να οφείλεται σε αργή ή αναξιόπιστη σύνδεση, ελαττωματικό καλώδιο USB ή εσφαλμένες ρυθμίσεις ρυθμού baud.
Υπάρχουν δύο πιθανές λύσεις:
- Εγκαταστήστε τον bootloader Arduino ξανά πριν ανεβάσετε το σκίτσο σας.
- Κρατήστε πατημένο το κουμπί επαναφοράς κατά τη μεταγλώττιση του κώδικα και αφήστε τον ένα κλάσμα του δευτερολέπτου πριν ξεκινήσει η αποστολή του κώδικα.
Αν και κανένα από τα δύο δεν είναι ιδανικό, μπορείτε να δοκιμάσετε μια επιδιόρθωση που βασίζεται περισσότερο σε υλικό από το παραπάνω εκπαιδευτικό βίντεο. Εάν αυτό δεν λειτουργεί, ήρθε η ώρα να αγοράσετε μια νέα πλακέτα.
5. Μη έγκυρη υπογραφή συσκευής
Θα δείτε αυτό το μήνυμα σφάλματος στη σειριακή οθόνη:
Avrdude: Ναι! Invalid Device SignatureDouble-έλεγχος συνδέσεις και προσπάθησε ξανά, ήχρήση -ΦΑ προς την παρακάμψει αυτόν τον έλεγχο.
Αυτό το σφάλμα παρουσιάζεται κατά τη μεταφόρτωση κώδικα σε διαφορετική πλακέτα από αυτή που έχει επιλεγεί στο Arduino IDE. Συνήθως προκαλείται από αναντιστοιχία υπογραφής συσκευής. Για να το επιλύσετε αυτό, επιλέξτε τη σωστή πλακέτα στο IDE ή αναβοσβήστε τον πιο πρόσφατο bootloader Arduino στην πλακέτα.
6. Το Board Not in Sync
Γενικά, όταν παρουσιαστεί αυτό το σφάλμα, η πλακέτα του Arduino δεν θα μπορεί να λάβει τον μεταφορτωμένο κώδικα (ακόμα κι αν το IDE υποδεικνύει "Ολοκληρώθηκε η μεταφόρτωση") και το IDE θα εμφανίσει αυτό το μήνυμα σφάλματος:
avrdude: stk500_getsync(): δεν συγχρονίζεται: resp=0x00
Ακολουθούν ορισμένα βήματα αντιμετώπισης προβλημάτων που μπορούν να βοηθήσουν στην εκκαθάριση του σφάλματος:
- Βεβαιωθείτε ότι δεν υπάρχουν συσκευές, συμπεριλαμβανομένων των ασπίδων, συνδεδεμένες στις ψηφιακές ακίδες 0 και 1 στο Arduino.
- Βεβαιωθείτε ότι έχουν επιλεγεί η σωστή θύρα COM και πλακέτα στο Εργαλεία μενού του IDE.
- Πατήστε το κουμπί επαναφοράς στην πλακέτα του Arduino αρκετές φορές και, στη συνέχεια, δοκιμάστε να ανεβάσετε ξανά τον κωδικό.
- Αποσυνδέστε το Arduino από τον υπολογιστή και επανασυνδέστε το.
Το μήνυμα σφάλματος συγχρονισμός: resp = 0x00 είναι μια γενική απόκριση που συνήθως υποδεικνύει ένα πρόβλημα με το τσιπ ATmega στην πλακέτα Arduino.
7. Σκίτσο πολύ μεγάλο
Αυτό το μήνυμα σφάλματος εμφανίζεται όταν το μέγεθος του κωδικού υπερβαίνει την ποσότητα της διαθέσιμης μνήμης στην πλακέτα. Αυτό μπορεί να προκληθεί από τη χρήση πάρα πολλών βιβλιοθηκών ή από τη συμπερίληψη περιττού κώδικα. Δοκιμάστε να βελτιστοποιήσετε τον κώδικα αφαιρώντας περιττές λειτουργίες ή βιβλιοθήκες.
8. Η βιβλιοθήκη δεν βρέθηκε
Αυτό το μήνυμα σφάλματος εμφανίζεται όταν το IDE δεν μπορεί να εντοπίσει μια συγκεκριμένη βιβλιοθήκη που απαιτείται για το έργο. Αυτό μπορεί να οφείλεται στη μη σωστή εγκατάσταση της βιβλιοθήκης ή στη χρήση μιας παλιάς έκδοσης. Για να επιλύσετε αυτό το ζήτημα, δοκιμάστε να εγκαταστήσετε ξανά τη βιβλιοθήκη ή να την ενημερώσετε στην πιο πρόσφατη έκδοση.
9. Σφάλμα μεταγλώττισης
Αυτό το μήνυμα σφάλματος εμφανίζεται όταν υπάρχουν συντακτικά σφάλματα στον κώδικα. Αυτό μπορεί να οφείλεται σε έλλειψη αγκύλων, ερωτηματικών ή λανθασμένων ονομάτων συναρτήσεων. Ελέγξτε προσεκτικά τον κώδικα για συντακτικά λάθη και διορθώστε τα.
10. Σφάλμα κατά τη μεταφόρτωση του σκίτσου
Αυτό το μήνυμα σφάλματος εμφανίζεται όταν το IDE δεν είναι σε θέση να μεταφορτώσει τον κώδικα στον πίνακα. Αυτό μπορεί να οφείλεται σε λανθασμένο τύπο πλακέτας που έχει επιλεγεί στο IDE, σε σπασμένο bootloader ή σε ελαττωματικό καλώδιο USB. Για να επιλύσετε αυτό το ζήτημα, βεβαιωθείτε ότι έχει επιλεγεί ο σωστός τύπος πλακέτας και ότι το καλώδιο USB είναι σε καλή κατάσταση. Εάν αυτό το σφάλμα επιμένει, μπορείτε να δοκιμάσετε να αναβοσβήσετε ένα νέο bootloader στην πλακέτα σας.
Περισσότερη κωδικοποίηση, λιγότερος εντοπισμός σφαλμάτων
Το Arduino είναι μια ισχυρή πλατφόρμα για την κατασκευή καινοτόμων ηλεκτρονικών έργων. Αν και είναι ένα σχετικά εύκολο εργαλείο στη χρήση, ενδέχεται να αντιμετωπίσετε σφάλματα και προβλήματα στην πορεία. Κατανοώντας τα κοινά σφάλματα και τις αιτίες τους, μπορείτε να λάβετε μέτρα για να τα αντιμετωπίσετε και να τα ξεπεράσετε.