Vai al contenuto
PLC Forum


Scaccia Topi


Messaggi consigliati

Inserito:


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?


Inserita:
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

Luigi Di Donato
Inserita: (modificato)

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 .

Modificato: da Luigi Di Donato
Luigi Di Donato
Inserita:

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

Inserita:

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

Inserita: (modificato)

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

Modificato: da GiRock
Luigi Di Donato
Inserita:

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.

Inserita:

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

Luigi Di Donato
Inserita:

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

Inserita:

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++;

Inserita:

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

Inserita:

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

Inserita:

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

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...