BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   Aiuto programazione pic x movimento servo (https://www.baronerosso.it/forum/circuiti-elettronici/315597-aiuto-programazione-pic-x-movimento-servo.html)

lucasss 29 aprile 14 17:58

Arduino ed i PIC sono due cose separate e distinte...
I PIC sono dei microcontrollori prodotti da Microchip, Arduino invece monta un micocontrollore prodotto dalla ATMEL.

Puoi comprare Arduino, utilizzarlo per i tuoi bersagli, e quando ti sei stancato di sparare ai bersagli e vuoi riutilizzare Arduino per altri scopi hai due opzioni:

1) Ci rompi nuovamente le p***e per un altro programma :P
2) Impari a programmatelo da solo con le centinaia di guide presenti sul web :lol:

Ovviamente usando sempre lo stesso Arduino che prima hai usato per i bersagli...
Od in alternativa ne puoi prendere un altro ;)

Se non ho risposto alla tua domanda come t'aspettavi...è perchè non l'ho capita :fiu:

sniper5 29 aprile 14 18:11

mhm.. cerco di spiegarmi meglio arduino e una scheda con un micocontrollore programmabile da PC mi pare di capire in C++
Ora dicimo che finalmente riesco a fare il mio programma per Arduino, e decido di creare su un circuito exnovo tipo quello iniziale del post, bene con lo stesso programma riesco a programmare sto malefico pic naturalmente con il programmatore per pic adatto??
Si o No altrimenti siamo punto e a capo

lucasss 29 aprile 14 18:16

Continuo a non capirti :icon_rofl

Due cose hanno il nome "Arduino":
- La scheda, che può essere Arduino Nano, Arduino uno, Arduino 2009 ecc...
- L'IDE di Arduino

Cos'è l'IDE? Detto in parole semplici è un ambiente di programmazione che ti permette di scrivere il tuo programma e successivamente caricarlo sul tuo Arduino nano/uno/2009 ecc...

Se usi Arduino non hai bisogno dei PIC...
Forse sei un pò confuso...Dopo che programmi Arduino Scheda con il PC, NON devi staccare il microcontrollore e saldarlo su una millefori ecc...usi l'intera board di Arduino e li ci colleghi ciò che ti pare...

Un esempio al volo da Google:

http://www.pyroelectro.com/tutorials...ervo_final.jpg

Se ancora non ti ho risposto...chiedo l'aiuto del pubblico :lol:

sniper5 29 aprile 14 18:24

Ma forse mi spiego male :o: mi pare di scrivere piu ho meno correttamente italiano...

arduino nano e un hardware, arduino ide e un software che serve a sviluppare il programma in c++ giusto? e serve poi per caricarlo sul nano giusto? ci siamo?

ora questo mio codice scritto sul arduino ide lo posso poi caricare anche su un PIC naturalmente dopo averlo trasformato in HEX
si o no ??

lucasss 29 aprile 14 18:33

Ok, ora è chiaro B)

Citazione:

Originalmente inviato da sniper5 (Messaggio 4245847)
arduino nano e un hardware, arduino ide e un software che serve a sviluppare il programma in c++ giusto? e serve poi per caricarlo sul nano giusto? ci siamo?

Si, C/C++, e si...programmi e poi lo carichi...

Citazione:

Originalmente inviato da sniper5 (Messaggio 4245847)
ora questo mio codice scritto sul arduino ide lo posso poi caricare anche su un PIC naturalmente dopo averlo trasformato in HEX
si o no ??


La risposta è...NO!
Arduino ed i PIC sono due famiglie diverse, hanno registri diversi, funzionano in modo differente...

Arduino IDE -> HEX -> Arduino Board

MPLAB -> HEX -> PIC

O procedi con i PIC Microchip, o procedi con Arduino...sono due strade differenti...

Minestrone 29 aprile 14 18:35

No. I codici per Arduino e per pic sono diversi. Inoltre il bello di Arduino è l'esistenza di librerie preconfezionate che semplificano notevolmente la programmazione ma, chiaramente queste librerie vanno bene per Arduino e non per pic. Il pic lo programmi in C++, il linguaggio di programmazione di Arduino si chiama Sketch che deriva ed è molto simile al C ma è diverso. Ergo un programma per Arduino non funzia su pic.

Inviato con il mio attrezzo portatile. Per eventuali errori prendeteva con lui.

sniper5 29 aprile 14 18:45

ok ora e chiaro, era come immaginavo :angry:

bene allora arduino credo non faccia per me, nel senso che ogni volta dovrei comprarne uno per ogni cosa che vorrei fare.. non permette la produzione in serie dello stesso progetto troppo costoso alla fine...

pensavo arduino servisse come tutorial prova di circuiti, base per i progetti ma invece e sestante

mi tocca studiarmi il C per i PIC qualche link a guide ?

lucasss 29 aprile 14 19:11

Hai centrato in pieno il "difetto" di Arduino...
Anche se in teoria si potrebbe sfruttare Arduino Uno per programmare degli altri Atmega bla bla bla...e arrivare a ciò che vuoi fare tu...

Per quanto riguarda i PIC, una guida che ho trovato molto semplice e che ho consigliato a molti è quella di Settorezero...ma ce ne sono tantissime online ^_^

sniper5 01 maggio 14 10:10

bene inizio a rompervi le bolas in attesa che mi arrivi il programmatore :D
dunque partendo dal codice sorgente che mi sembra gia una buona base di partenza, allego il codice con le modifiche, che secondo me fanno quello che voglio io cioe ritardare di 5 secondi la rotazione del servo dopo la pressione del pulsante, il problema e poi come dico ritorna alla posizione iniziale dopo che ha fatto la rotazione di tot gradi impostato dal trimer?
Codice:

int tempo, gradi, x, y, valore, gradiRil, i;
 
void main (void){
 ANSEL  = 1;                        // configurazione input alanogico
  TRISIO = 0b001011;                  // gpio0-1-3 in input – gpio2 in output
  valore = 40;
  i=0;
 
while (1){
inizio:
 
 tempo = ADC_READ(0);
 delay_ms(5);                 
 
 gradiRil = ADC_READ(1);
 delay_ms(5000);          //qui dico di ritardare  5secondi dopo la pressione tasto
 
 tempo = (tempo+50)/50;
 gradiRil = (gradiRil+50)/7;
 
    for(x=0;x<tempo;x++){
    for(y=0;y<valore;y++){
            gpio.f2 = 1;
}
gpio.f2 = 0;
delay_ms(20);
}
 
if(gpio.f3)
  i=i^1;
  while(gpio.f3){}
 
 
if(i)
  gradi = gradiRil;
  else
  gradi = 40;
 
if(valore==gradi)
  goto inizio;
 
 if(valore>gradi)
  valore--;
 else
  valore++;
 
}}


MSchiepp 01 maggio 14 11:10

Citazione:

Originalmente inviato da sniper5 (Messaggio 4248101)
bene inizio a rompervi le bolas in attesa che mi arrivi il programmatore :D
dunque partendo dal codice sorgente che mi sembra gia una buona base di partenza, allego il codice con le modifiche, che secondo me fanno quello che voglio io cioe ritardare di 5 secondi la rotazione del servo dopo la pressione del pulsante

No... tu hai messo un ritardo fisso (pulsante premuto o no) dopo la lettura dei trimmer; prova a chiederti in che punto del codice viene letto il pulsante e dove decide se il pulsante è premuto oppure no.

Michele

P.S.: sul fatto che sia una buona base ci sarebbe da discutere... va bene giusto per iniziare, ma quando in un codice C vedi l'istruzione 'GOTO'... lascia perdere!!!


Tutti gli orari sono GMT +2. Adesso sono le 00:30.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002