Vai al contenuto
PLC Forum


Scaccia Topi


MrCamarium

Messaggi consigliati


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?

Link al commento
Condividi su altri siti


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

Link al commento
Condividi su altri siti

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 .

Modificato: da Luigi Di Donato
Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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
Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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