.: robotitaly.NET :. - la community italiana sulla robotica  

Vai indietro   .: robotitaly.NET :. - la community italiana sulla robotica > Microcontrollori > PICAXE

PICAXE Forum dedicato ai microcontrollori programmabili in Basic 'PICAXE'

Rispondi
 
Strumenti della discussione ModalitÓ di visualizzazione
  #1  
Vecchio 01-25-2013, 09:50 PM
GizMo GizMo non Ŕ collegato
Nuovo Roboter
 
Registrato dal: Jan 2013
Messaggi: 2
predefinito 14M2 il programma e' corretto ma non esegue una certa funzione

Questo e' il listato del programma:

codice:
#no_data

symbol powrel = B.1
symbol powled = B.2
symbol anodrel = C.4
symbol can1 = B.3
symbol can2 = B.4
symbol can3 = B.5
symbol mot1 = C.0
symbol mot2 = C.1
;symbol anticlip = C.2

gosub pulsasu
gosub pulsagiu
gosub pwledoff

spento:
low powrel
gosub pwledoff
low anodrel
gosub mutofinale
irin C.3,infra
if infra = 21 then
	goto avvio
endif

avvio:
high powrel
for b1 = 1 to 5
	gosub pulsasu
	gosub pulsagiu
inc b2
next b1
gosub pulsasu
high anodrel
pause 1000

acceso:
gosub cerca
do
if pin2 = 1 then
	gosub volgiu
endif	
irin C.3,infra
if infra = 0 then
	gosub canale1
endif
if infra = 1 then
	gosub canale2
endif
if infra = 2 then
	gosub canale3
endif
if infra = 9 then
	gosub muto
endif
if infra = 98 then
	gosub volgiu
endif
if infra = 11 then
	gosub volsu
endif
if infra = 21 then
	goto spento
endif
if infra = 20 then
	gosub cerca
endif
loop

volsu:
high mot2
pause 60
low mot2
return

volgiu:
high mot1
pause 60
low mot1
return

canale1:
let b0 = 1
high can1
low can2
low can3
return

canale2:
let b0 = 2
low can1
high can2
low can3
return

canale3:
let b0 = 3
low can1
low can2
high can3
return

muto:
for b1 = 1 to 50
	gosub volgiu
inc b2
next b1
low can1
low can2
low can3
irin C.3,infra
if infra = 9 then
	if b0 = 1 then
		gosub canale1
	endif
	if b0 = 2 then
		gosub canale2
	endif
	if b0 = 3 then
		gosub canale3
	endif
endif
for b1 = 1 to 50
	gosub volsu
inc b2
next b1
return

mutofinale:
for b1 = 1 to 50
	gosub volgiu
inc b2
next b1
low can1
low can2
low can3
return

pulsasu:
pwmout powled, 99, 20
pause 50
pwmout powled, 99, 40
pause 50
pwmout powled, 99, 80
pause 50
pwmout powled, 99, 120
pause 50
pwmout powled, 99, 160
pause 50
pwmout powled, 99, 200
pause 50
pwmout powled, 99, 240
pause 50
pwmout powled, 99, 280
pause 50
pwmout powled, 99, 320
pause 50
pwmout powled, 99, 360
pause 50
pwmout powled, 99, 400
pause 50
return

pulsagiu:
pwmout powled, 99, 360
pause 50
pwmout powled, 99, 320
pause 50
pwmout powled, 99, 280
pause  50
pwmout powled, 99, 240
pause 50
pwmout powled, 99, 200
pause 50
pwmout powled, 99, 160
pause 50
pwmout powled, 99, 120
pause 50
pwmout powled, 99, 80
pause 50
pwmout powled, 99, 40
pause 50
pwmout powled, 99, 20
return

pwledoff:
pwmout powled, 99, 0
return

cerca:
gosub canale3
pause 500
gosub canale2
pause 500
gosub canale1
pause 500
return
Il programma compila e lo carica nel picaxe, funziona tutto tranne la lettura del pin2: se lo metto a +5v non succede niente. La cosa curiosa e' che se cancello tutto ad accezione delle funzioni "acceso" e "volgiu" dopo va, non capisco il motivo, forse qualche altra parte del programma che interferisce con la lettura del pin ?!
Rispondi quotando
  #2  
Vecchio 01-25-2013, 10:00 PM
GizMo GizMo non Ŕ collegato
Nuovo Roboter
 
Registrato dal: Jan 2013
Messaggi: 2
predefinito

ho altre 2 domande da fare, premetto che sono un novello, ma c'e' un modo per semplificare la funzioni pulsasu e pulsagiu ? servono a ottenere una pulsazione passando a diversi livelli di luminosita' un led usando il pwm.

Poi un'altra domanda, se ad esempio voglio leggere lo stato di un pin e fare qualcosa faccio cosi:

if pinX = 1 then
gosub qualcosa
endif

Ma se io volessi che non fosse istantaneo ma esegua il gosub SOLO se il pin1 resta a 1 per piu' di un tot tempo come posso fare ?
Rispondi quotando
Rispondi

Segnalibri

Strumenti della discussione
ModalitÓ di visualizzazione

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code Ŕ attivo
Le smilie sono attive
Il codice IMG Ŕ attivo
il codice HTML Ŕ disattivato

Salto del forum


Tutti gli orari sono GMT. Attualmente sono le 05:41 AM.


Powered by vBulletin versione 3.8.7
Copyright ©: 2000 - 2018, Jelsoft Enterprises Ltd.