Jump to content
PLC Forum


Sign in to follow this  
MrCamarium

Scaccia Topi

Recommended Posts

MrCamarium


Scaccia toi con PIC12F675

Compiler: HI-TECH C Compiler for PIC10/12/16 MCUs Version 9.83

#define _XTAL_FREQ 4000000

#include <pic.h>

#include <delay.c>

// configurazione

__CONFIG (FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF);

// Connessioni

#define Led1 GP2 // GP2 -> SIN

#define Led2 GP1 // GP1 -> LAT

#define Led3 GP0 // GP0 -> CLK

#define Led4 GP3 // GP0 -> CLK

#define OUT GP4 // GP0 -> CLK

// funzioni

void main(void)

{

while(!HTS); // Stabilizza oscilatore interno

CMCON=7; // Disabilita Comparatore.

ADCON0 = 0; // Disabilita convertitore A/D

TRISIO = 0b00000000; // Tutti i pin in out

while(1) // eseguo un ciclo infinito

{

OUT=1;

DelayMs(0,0625); // 16-27KHz

OUT=0;

}// Fine ciclo continuo

} // Fine main

volevo sapere come posso modificare il programma ottenendo dopo 100 cicli un aumento del valore di delay?

Share this post


Link to post
Share on other sites

GiRock
void main(void)

{

	unsigned char count = 0;

	unsigned short val = 32;

	while(!HTS); // Stabilizza oscilatore interno

	CMCON=7; // Disabilita Comparatore.

	ADCON0 = 0; // Disabilita convertitore A/D

	TRISIO = 0b00000000; // Tutti i pin in out

	while(1) // eseguo un ciclo infinito

	{

		while(count < 100)

		{

			OUT=1;

			DelayUs(val); // 16-27KHz

			OUT=0;

			DelayUs(val);

			count++;

		}

		count = 0;

		// da 16KHz arriva a 27KHz e poi torna a 16KHz

		val = (val - 1 >= 18) ? (val - 1) : 32;

	}// Fine ciclo continuo

} // Fine main

Share this post


Link to post
Share on other sites
Luigi Di Donato

Ho un filmato in esclusiva della cattura di un topo in casa mia, ho montato una telecamera con indirizzo I.P.

e la cattura e' stata una vera impresa, sono piu' furbi di quello che pensavo, ma ho vinto io .

Edited by Luigi Di Donato

Share this post


Link to post
Share on other sites
Luigi Di Donato

Lo devo ancora montare, appena riesco ( speriamo che Carletto non l'ha cancellato ) lo metto.

Ma dimmi una cosa, gli ultrasuoni vanno bene per allontanare i topi? Frequenza ? Ho preso un dispositivo dai cinesi ma non so se funziona, sulla confezione c'e' scritto uscita 8 Watt frequenza 2O Khz 55 Khz, mo non so se i topi cinesi sono uguali a quelli del mio paese, non e' che cambiando nazione cambia la frequenza di ricezione dei topi??

Share this post


Link to post
Share on other sites
GiRock

Ok per il video vedi tu, non so se poi sia anche un argomento tabù qui sul Forum, penso che scene cruente siano al bando, questo lo devi chiedere a chi sai già...

Dubito che gli ultrasuoni possano dar fastidio a dei Topi con la T maiuscola, anche se dove abito io sono decenni che sono stati debellati delle Pantegane che facevano scappare anche i Gatti e aggredivano pure le persone, è stato necessarrio piazzare trappole velenosissime e qualche fucilata visto l'alto numero degli iscritti all'albo dell'epoca, ora sono rimasti in giro dei Campagnoli che vengono giù dai boschi e infestano le dispense mangiando tutto quello che trovano comprese le porte, ma direi che il fenomeno è sotto controllo, ormai si possono contare sulle punta delle dita gli avvistamenti...

Ricordo che un conoscente Ingegnere avendo il terrore che ratti e talpe gli potessero rovinare il giardino o la villetta, aveva piazzato su tutto il perimetro questi apparecchi ad ultrasuoni, beh, che devo dirti, a parte un primo periodo dove sembrava funzionare, in seguito la trovata dava fastidio solo a me quando passavo di lì avendo un udito a dir poco sviluppato, era come se mi mettessero degli spilli dentro alle orecchie, mentre gli animaletti che si erano adattati non ne risentivano minimamente sguazzando indisturbati, la sua fortuna è stata che la vicina teneva 12 gatti ben pasciuti che cacciavano a turni, in compenso però si facevano le unghie sulle sue preziose piante, la talpa mi sa che era sorda perché ha continuato a scavare indisturbata per anni...

Ad ogni modo ho risposto solo alla domanda per il codice, per il resto ci sarà gente più esperta della caccia al Topo :superlol:...

Share this post


Link to post
Share on other sites
GiRock

Leggermente ottimizzato:

void main(void)

{

	unsigned short count = 0;

	unsigned short val = 32;

	while(!HTS); // Stabilizza oscilatore interno

	CMCON=0x07; // Disabilita Comparatore.

	ADCON0 = 0x00; // Disabilita convertitore A/D

	TRISIO = 0b00000000; // Tutti i pin in out

	while(1) // eseguo un ciclo infinito

	{

		while(count < 200)

		{

			OUT^=1;

			DelayUs(val); // 16-27KHz

			count++;

		}

		count = 0;

		// da 16KHz arriva a 27KHz e poi torna a 16KHz

		val = (val - 1 >= 18) ? (val - 1) : 32;

	}// Fine ciclo continuo

} // Fine main

Attenzione!!!

In HI-TECH C versione free, il file "delay.c" non è ottimizzato, la routine DelayUs accetta valori come unsigned char ovvero da 0 a 255, quindi se si vogliono ritardi maggiori bisogna concatenare manualmente più istruzioni, impensable invece utilizzare un float come parametro, purtroppo _delay(us) accetta solo costanti e nel tuo caso non va bene...

Edited by GiRock

Share this post


Link to post
Share on other sites
Luigi Di Donato

Purtroppo il video e' stato cancellato da quel disgraziato di Carletto.

comunque. Il video non conteneva immagini crude, a parte il finale che ve lo racconto io.

Una volta catturato il topo ( su un cartone con relativa colla ) non sapevo cosa farne, allora sono sceso in strada e l'ho piazzato in mezzo alla carreggiata, tutte le auto che passavano a grande velocita' non lo prendevano perche' la posizione non era quella giusta.

Sono ritornato in strada e l'ho spostato, e' passata un auto a fortissima velocita' e l'ha beccato in pieno, ho sentito un esplosione ed e' scomparso il topo con tutto il cartone.

Share this post


Link to post
Share on other sites
Livio Orsini

Ma un bel gatto non ce l'hai? Così si divertiva un poco anche lui. :smile:

Share this post


Link to post
Share on other sites
Luigi Di Donato

C'e' un gatto della malora nella mia scala, , ha paura dei topi. :senzasperanza:

Share this post


Link to post
Share on other sites
MrCamarium

nel pic che uso io questo comando non funziona:

OUT^=1;

devo usare il sistema proposti in precedenza:

OUT=1;

DelayUs(val); // 16-27KHz

OUT=0;

DelayUs(val);

count++;

Share this post


Link to post
Share on other sites
GiRock

Che PIC e che versione del compilatore usi???

Io lo avevo compilato e non ho ricevuto errori, forse non dipende da quell'istruzione, ma da altro che è di contorno, ad ogni modo se funziona quella precedente va bene anche così...

Share this post


Link to post
Share on other sites
GiRock

Ecco all'incirca il suono generato da simulatore: SCACCIA TOPO ULTRASONICO

Comunque MrCamarium, ho trovato la stessa domanda in molti Forum, quindi i casi sono due, o hai fretta o non ti fidi del prossimo, inoltre io ti conosco da molto tempo, come hai potutto constatare nessuno ha risposto decentemente al tuo quesito, per la storia del codice OUT^=1; in effetti viene compilato ma poi non funziona in simulazione, quello che non posso provare non avendolo a disposizione e se poi una volta programmato il PIC riconosce l'istruzione correttamente, quando uso MikroC non ho di questi problemi...

Share this post


Link to post
Share on other sites
MrCamarium

diciamo che è fretta ma mi scuso, comunque quella istruzione è il PIC12F675 a non riconoscerlo.

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...