- Messaggi: 46
- Ringraziamenti ricevuti 1
PJ3007 in Linux Ubuntu
- crosby
- Autore della discussione
- Anziano Utente
-
Less
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
un saluto
fabio milano
Si prega Accesso o Crea un account a partecipare alla conversazione.
- crosby
- Autore della discussione
- Anziano Utente
-
Less
Di più
- Messaggi: 46
- Ringraziamenti ricevuti 1
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):
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
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.
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
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.
