PJ3007 in Linux Ubuntu

  • crosby
  • Autore della discussione
  • Anziano Utente
  • Anziano Utente
Di più
11 Anni 6 Mesi fa #11 da crosby
Risposta da crosby al topic PJ3007 in Linux Ubuntu
Sono pronto

un saluto

fabio milano

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • crosby
  • Autore della discussione
  • Anziano Utente
  • Anziano Utente
Di più
11 Anni 5 Mesi fa #12 da crosby
Risposta da crosby al topic PJ3007 in Linux Ubuntu
Salve

L’articolo sul progetto CNC è interessante e anche un po’ … tosto ma ci voglio arrivare.
Ho provato la scheda anche con un motorino in CC in modalità SM: funziona OK.
Condivido il brevissimo sorgente (derivato dall'esempio 1):

Code:
#include <PIC18F4431_config.h> #define DC_MOTOR #include "init.h" #include "init.c" #include "delay.h" #include "delay.c" #define MAX_CURRENT 700 //1000 /** * @note This Example shows how to initialize a DC motor in Signed magnitude Modality. * After Initialization both motors are driven. * One motor is rotating clockwise, while the second one anticlockwise. */ //************************************************************ // Main Program //************************************************************ void main (void){ int pwm_dc; board_initialization (); initialize_DC_motor (SIGNED_MAGNITUDE,PWM_FREQ_10KHZ, MAX_CURRENT); //rotate_motor_clockwise (MOTOR_1, 180); //rotate_motor_anticlockwise (MOTOR_2, 150); delay_ms (100); while (1) { pwm_dc = ADC_read_POT_1(); rotate_motor_clockwise(MOTOR_1, pwm_dc); system_check (); } }

La regolazione della velocità è avvenuta con un trimmerino collegato su AUX1 come descritto nella scheda tecnica a pag 32/63, nel testo vengono fornite indicazione anche come collegare un ingresso digitale a AUX_SW_1/2 (ho fatto una piccola prova accendendo/spegnendo uno dei due user led)

Anche il connettore encoder e i tre segnali di controllo enable, direction e step potrebbero essere comunque usati per leggere valori, in questo caso digitali.
Ho provato prima con il connettore encoder le resistenze di pull-up r67,r68 e r69 ho preferito inserirle esternamente su breadboard (sono un pessimo saldatore!)
Poi ho provato inserendo semplicemente nel ciclo infinito le istruzioni
HEART_LED = PORTAbits.RA2;
oppure
HEART_LED = PORTAbits.RA3;
oppure
ERROR_LED = PORTAbits.RA4;
Ho messo il riferimento diretto alla porta in quanto non ho rilevato nessuna #define in merito.
Con QEI_B (RA4) ci sono state dei problemi, la cosa penso sia sicuramente dovuta all’impostazione data con il registro ANSEL0 = 0b11110011; che imposta RA4/AN4 come analogica, ho provato a sostituire con ANSEL0 = 0b11100011; e funziona.

Per poter utilizzare i segnali di controllo si può dire qualcosa? Dallo schema elettrico risulterebbe che ENABLE presenta una R di pull-down R52 ma STEP e DIRECTION invece no. Come fare, si possono aggiungere esternamente?

Un saluto
Fabio milano

Si prega Accesso o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
11 Anni 5 Mesi fa #13 da Mauro Laurenti
Risposta da Mauro Laurenti al topic PJ3007 in Linux Ubuntu
...bene, bene, si procede.

Relativamente ai segnali Enable, Step e Direction ho messo la resistenza solo su enable visto che quando il connettore e' staccato, e' bene disabilitare la scheda.
Step e direction sono collegati ad uscite push-pull di altri controller per cui non necessitano di pull-up o pull down.

Come detto se il connettore e' staccato il segnale di Enable disattiva comunque Step e direction, che potrebbero anche rimanere floating.

Un'altra considerazione e' stata anche relativa allo spazio. Come avrai avuto modo di vedere non c'e' molto astro spazio libero...

Saluti,

Mauro

Si prega Accesso o Crea un account a partecipare alla conversazione.

Moderatori: Mauro Laurenti, StefA

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.