Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα σε όλους, έχω ενα sketch με αρκετές λειτουργίες έτοιμο. Kατά τη σύνδεση servo στο sketch , παρουσίασε λάθος κίνηση από την προγραμματισμένη, ενώ όλα τα άλλα λειτουργούσαν. Άπο την αρχή που έτρεχε η void setup πριν μπει στη loop, το servo έκανε κινηση προς μία κατεύθυνση με περιοδικές διακοπές . Στο ψάξημο βρήκα οτι με το που δηλώνω   servo1.attach(19);  ,  χωρίς να δώσω εντολή για κίνηση στο servo έχει το ίδιο αποτέλεσμα.

 

Επεξ/σία από karmiris
  • 4 εβδομάδες αργότερα...
Δημοσ.
Στις 12/9/2019 στις 4:07 ΜΜ, karmiris είπε

servo1.attach(19); 

 

Αυτό δηλώνει το πιν που θα συνδέσεις το καλώδιο PWM του servo.

Για παράδειγμα στο UNO τα PWM pins είναι τα 3,5,6,9,10 και 11. Αν το συνδέσεις κάπου αλλού δέν θα δουλέψει.

Ποιό Arduino board έχεις?

Δημοσ.

Arduino uno,  το A5 το δηλώνω ως ψηφιακή θύρα γι αυτό και το (19)

Το sketch με την κίνηση του σέρβο και το sketch με τις υπόλοιπες λειτουργίες, λειτουργούν μια χαρά το κάθε ένα μόνο του. Κατά την σύνδεσή τους παρουσιάζεται το πρόβλημα.

 

Το sketch με την κίνηση του σέρβο και το sketch με τις υπόλοιπες λειτουργίες, λειτουργούν μια χαρά το κάθε ένα μόνο του. Κατά την σύνδεσή τους παρουσιάζεται το πρόβλημα.

Το σήμα για την κίνηση του σέρβο είναι διαφορετικό από τα PWM. Το σέρβο απ' όσο ξέρω, μπορεί να συνδεθεί σε οποιαδήποτε ψηφιακή θύρα.

  • 2 εβδομάδες αργότερα...
Δημοσ. (επεξεργασμένο)
Στις 16/10/2019 στις 12:10 ΜΜ, karmiris είπε

Το sketch με την κίνηση του σέρβο και το sketch με τις υπόλοιπες λειτουργίες, λειτουργούν μια χαρά το κάθε ένα μόνο του. Κατά την σύνδεσή τους παρουσιάζεται το πρόβλημα.

 

Αυτό δεν το διευκρίνησες απο την αρχή. 

Απο ότι βλέπω χρσιμοποιείς την standard servo library σε συνδιασμό με την softserial.

#include <SoftwareSerial.h>
 

 

είναι γνωστό οτι αυτά τα δύο δεν ταιριάζουν τα χνώτα τους. Η softserial χρησιμοποιεί πολύ αργούς interrupt handlers οι οπίοι όμως είναι  μεγαλύτερης πρoτεραιότητας απο τα interrupts του timer1 που χρησιμοποιεί η servo library για να χρονίσει τους παλμούς στα servo. Οσο λοιπόν "διαβάζει" έναν χαρακτήρα η softserial αγνoούντε τα άλλα Interrupts οπότε ο χρονισμός των παλμών στα servo χαλάει.

Υπάρχουν φυσικά 2 λύσεις. Χρησιμοποιείς μια άλλη servo library ή μια άλλη softserial library. Ή δεν χρησιμοποιείς καθόλου softserial....

 

Επεξ/σία από nkarama
typos...
  • Thanks 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...