Voler conoscere la posizione angolare del servocomando potrebbe essere utile per impostare alcuni punti da utilizzare per muovere la telecamera in una determinata posizione.
Componenti da inserire nel 3D System panel.
Variabili
ADC_in, tipo Byte
angolo, tipo Byte
str[4], tipo stringa
Diagramma di flusso
Nel programma definisco le operazioni che non variano durante l’esecuzione del programma, come l’inizializzazione del display LCD e del ServoMotorControl.
In questa fase definisco anche la posizione della scritta “asse X” sulla prima riga del display LCD.
Ciclo principale
Nel ciclo principale Loop While=1, che è ripetuto fintanto che il programma è attivo, inserisco i Component Macro:
GetByte
ADC_in
MoveToPosition
angolo
Cursor 10,0
PrintString
str
Le espressioni matematiche contenute nella funzione Calcolo:
Servono per impostare il movimento del servocomando in modo che l’escursione sia compresa tra 0° e 180°, (255:1,415 = 180).
Str=FloatToString$(ADC_in): converte il valore di ADC_in in una stringa a virgola mobile.
Questa conversione è necessaria per visualizzare il valore dell’angolo che passando da 100 a 99, lascerebbe visibili i numeri non significativi, riducendo la leggibilità
PrintString(str): posiziona il valore della stringa str[4] al punto indicato con Cursor 10,0 : carattere 10 della riga zero.
C Code
Riccardo Monti