Jump to content
PLC Forum


Sign in to follow this  
Del_User_175845

Pic 16F628 Info Scheda Controllo E Relativo Sorgente

Recommended Posts

Del_User_175845

Buon pomeriggio a tutti avrei bisogno di essere aiutato a portare a termine un progetto cercherò di spiegarmi nel migliore dei modi:

Partiamo dagli albori---

Tempo fa un mio amico mi creo circuito e sorgente per il controllo di un servo da modellismo con l'ausilio di un pic 16f84 ma dopo svariare prove il servo non soddisfa le mie esigenze per 2 motivi_

- ronzio in stato di fermo(posizione)

- troppo rumoroso nei movimenti

allo stato attuale avrei pensato di utilizzare un microriduttore che ha 2 pregi il primo che una volta che raggiunge la posizione disalimentandolo non c'è verso di muoverlo e per seconda cosa è molto + silenzioso nei movimenti.

Il problema sorge nel modificare il circuito inserendo un potenziomentro per il controllo di posizione e nel modificare il circutio ed ovviamente il sorgente.

Se c'è qualcuno disposto ad aiutarmi provvedo ad allegare vecchio schema elettrico e sorgente precedentemente creato per il pic 16f84.

Attendo responsi, grazie anticipatamente

Edited by carlo201983

Share this post


Link to post
Share on other sites

Livio Orsini

Tu prova ad allegare lo schema della scheda a micro. Per le modifiche Hw penso che non ci siano problemi. Per le modifiche Sw potrebbero essercene.

E' necessario avere il sorgente del vecchio programma, poi è necessario effettuare le modifiche.

La domanda è: tu come te la cavi con il Sw? Che strumenti di programmazione disponi?

Share this post


Link to post
Share on other sites
Del_User_175845

ciao livio grazie per la risp (=risposta) celerissima allora come programmatore ho uno autocostruito un vecchio ludipipo che lo utilizzo con un vecchio pc desktop tramite porta seriale.

credo che non dovrei avere alcun problema nel programmare anche il 16f628 dato che è molto simile. comunque provvedo subito ad allegare vecchio schema + (=più) sorgente. grazie ancora.

P.s.

Allego anche video dimostrativo che creai tempo fa in modo tale da essere chiari nelle specifiche di utilizzo del medesimo circuito

qui c'è il sorgente

e qui lo schema elettrico anche se vecchio e per esempio molte cose non ci sono + (=più) come i trimmer però comunque ugualmente rende l'idea.

Edited by Fulvio Persano

Share this post


Link to post
Share on other sites
Del_User_175845

ciao livio come pensavo non serviva a nulla mettere schema sorgente ecc come vedi nessuno ha nemmeno dato uno sguardo.

Share this post


Link to post
Share on other sites
Fulvio Persano

Ciao.

come pensavo non serviva a nulla mettere schema sorgente ecc come vedi nessuno ha nemmeno dato uno sguardo.

Che significa? E',per caso, un sollecito ?

Share this post


Link to post
Share on other sites
GiRock

Guarda che Daniels118 è ancora in giro in altro Forum, ieri per esempio l'ho incrociato, puoi forse chiedere a lui di modificare un suo sorgente, comunque dove hai messo il codice durante lo scaricamento ho ricevuto un tentaivo di intrusione nel PC (grazie), i codici ad ogni modo si mettono così:

P.S. Quì purtroppo programmiamo tutti in C, Assembler e affini, sinceramente di rimettermi a traslare un codice in altro linguaggio ora come ora non ho tempo, se vuoi te lo contatto io, sarebbe magari felice di poterti aiutare...

'****************************************************************

'*  Name	: CARPUTER5.BAS									 *

'*  Author  : Daniels118										*

'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *

'*		  : All Rights Reserved							   *

'*  Date	: 27/04/2012										*

'*  Version : 1.0											   *

'*  Notes   : Apertura/chiusura automatica e manuale di un	  *

'*		  : in un'auto										*

'****************************************************************

'[at]DEVICE XT_OSC  ' sets programmer to external oscillator - low power, HS would be for faster xtals.

DEFINE OSC 8 ' for 8 mhz osc

TRISA = %11111100

TRISB = %11001111

'----- INGRESSI -----

pOpen	   VAR porta.2	 'pulsante apertura

pClose	  VAR porta.3	 'pulsante chiusura

fcServo	 VAR portb.2	 'finecorsa chiusura

pKey		VAR porta.4	 'pulsante chiave

tSpeed	  VAR portb.3	 'velocità

'----- USCITE ----

vccServo	VAR porta.0	 'alimentazione servo

sigServo	VAR portb.4	 'segnale servo

vccMonitor  VAR porta.1	 'alimentazione monitor

vccBuzzer   VAR portb.5	 'alimentazione buzzer

'------- VARIABILI ---------

servoState  VAR BYTE		'stato servo (acceso/spento)

curPos	  VAR WORD		'posizione corrente servo

dstPos	  VAR WORD		'posizione destinazione servo

maxPos	  VAR WORD		'posizione massima apertura

minPos	  VAR WORD		'posizione minima apertura

posOpen	 VAR WORD		'posizione apertura

posClose	VAR WORD		'posizione chiusura

speed	   VAR BYTE		'velocità

lKey		VAR BYTE		'accensione chiave

state	   VAR BYTE		'stato (aperto/chiuso)

i		   var byte


'------- INIT ---------

init:

	low vccservo

	low vccmonitor

	low vccbuzzer

	low sigservo

	servoState = 0

	maxpos = 360

	minpos = 110

	posOpen = 110

	posClose = 370

	dstPos = posclose

	curPos = dstPos

	PULSOUT sigSERVO, curpos

	state = 0

	lkey = 0

	PAUSE 1000

'------ MAIN LOOP ---------

mainloop:

	gosub getspeed

	if pKey = 1 then

		if lkey = 0 then gosub openmonitor

		if popen = 1 and pclose = 1 then

			if state = 1 then

				gosub closemonitor

			else

				gosub openmonitor

			endif

		elseif popen = 1 and dstpos < maxpos then

			dstpos = dstpos + 15

			gosub moveservo

			while pOpen = 1 '

			wend '

		elseif pclose = 1 and dstpos > minpos then

			dstpos = dstpos - 15

			gosub moveservo

			while pClose = 1 '

			wend '

		else '

		pause speed '

		PULSOUT sigSERVO, curpos '

	endif

	else

		if State = 1 then gosub closemonitor

	ENDIF

	lKey = pkey

GOTO mainloop

'---------- APRE IL MONITOR ---------

openMonitor:

	High vccmonitor

	dstPos = posOpen

	gosub moveServo

	state = 1

   'gosub servoOff

RETURN

'---------- CHIUDE IL MONITOR ---------

closeMonitor:

	low vccmonitor

	posOpen = dstPos

	dstPos = posclose

	gosub moveServo

	state = 0

	gosub servoOff

RETURN

'---------- ATTIVA L'ALIMENTAZIONE DEL SERVO ---------

servoOn:

	if servoState = 0 then

		servoState = 1

		high vccServo

		for i = 0 to 20

			PULSOUT sigSERVO, curpos

			pause 19

		next i

	endif

return

'---------- TOGLIE L'ALIMENTAZIONE DEL SERVO ---------

servoOff:

	if servoState = 1 then

	   'for i = 0 to 250

		   'if pOpen = 1 or pClose = 1 or pKey = 0 then return

		   'pause 20

	   'next i

	   low vccServo

		servoState = 0

	endif

return


'---------- LEGGE VELOCITA' ---------

getSpeed:

	speed = 8

RETURN


'------ MUOVE SERVOCOMANDO --------

moveServo:

	if curPos < dstPos then

		gosub servoOn

		repeat

			PAUSE SPEED

			curPos = curPos + 1

			PULSOUT sigSERVO, curpos

		until curPos = dstPos

	elseif curPos > dstPos and fcservo = 0 then

		gosub servoOn

		repeat

			PAUSE SPEED

			curPos = curPos - 1

			PULSOUT sigSERVO, curpos

			if fcServo = 1 then dstPos = curPos

		until curPos = dstPos

	endif

RETURN

end

schemaelettricomotorizz.jpg

Share this post


Link to post
Share on other sites
Del_User_175845

ciao gio lo so che daniels sta lavorando x me mq io scrivo su altri forum cercando e sperando di fornire aiuto. in quanto al sorgente se hai avuto problemi si scaricamento evidentemente il tuo antivirus é mal configurato. comunque grazie x avermi risp. ciao

Share this post


Link to post
Share on other sites
GiRock

Ok, paraticamente il programma è da riscrivere integralmente utilizzando il modulo PWM del 16F628 e magari i timers al posto del ciclo, questo richide comunque del tempo a meno che di non trovare qualcosa di già fatto in rete da potergli dare solamente un'aggiustatina...

Il mio antivirus si accorge di tutto visto che non è di quelli free, questi non ti avvisano per certe manovre maliziose compiute dai vari siti e tu pensi tranquillamente che sia tutto a posto...

Web Attack: Blackhole Toolkit Website 21

:ninja: Sai cosa vuol dire???

P.S.Quì su PLC non sono graditi abbreviativi tipo SMS o linguaggi giovanili. anche i solleciti non sono ben visti, se non vuoi beccarti richiami, scrivi le parole completamente e aspetta pazientemente il tuo turno come da Regolamento (anche 1 settimana)...

Share this post


Link to post
Share on other sites
Del_User_175845

gi-rock come vedi ho aspettato ampiamente più di una settimana senza avere alcuna risposta.

attenzione questo non vuole essere un sollecito ma una mia dimostranza che la maggior parte delle volte sui forum c'è chi aiuta e chi ti fa perdere tempo a mettere schemi sorgenti ecc senza poi nemmeno rispondere.

Comunque grazie a tutti.

Share this post


Link to post
Share on other sites
GiRock

Calma ragazzo,

nessuno ti ha detto che lo avrebbe fatto, ti era stato consigliato di cercare qualcosa in rete già pronto e solamente da modificare, questo è totalmente da traslare, riscrivere e testare, inoltre ho sentito Daniel il quale mi aveva assicurato che ci avrebbe pensato personalmente, quindi se ci vieni incontro bene altrimenti dovrai attendere che qualcuno progetti un aggeggio simile e lo pubblichi, io sono oberrato da richieste anche privatamente su tutti i fronti, se ci aggiungi che ho anche le mie cose da progettare e altro da fare, diciamo che siamo un tantino in alto mare in questo frangente storico...

Tieni presente che l'aggiunta di un potenziometro sula porta del PIC, precede tutta una serie di procedimenti per la decodifica, se questo poi lo metti nel contesto del codice, capirai da solo che non si adatterà mai a quello che hai postato, costringendo chi ti aiuta a mettere insieme un programma completamente nuovo, se devo progettare qualcosa che mi porta via le giornate, allora io lo chiamo lavoro, capisci :whistling:???

Share this post


Link to post
Share on other sites
Livio Orsini

Per l'ennesima volta.

Il forum non è ne un call center aziendale ne un ufficio di consulenze gratuite.

Se c'è chi ha tempo, voglia e capacità per rispondere responderà, altrimenti la domanda rimane inevasa.

Anche un'eventuale promessa di aiuto non può e non deve essere intesa come vincolante. Al limite si può pensare che c'è qualcuno che si lascia andare a promesse con leggerezza; però anche in questo caso sarebbe necessario valutare come è perch' non ha potuto "onorare" la promessa.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...