(12 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | An ultrasonic bat detector with only 3 components ! | + | [[File:PicoBat.jpg|thumb|PicoBat running on a bread board]] |
+ | An ultrasonic [[wikipedia:Bat detector|bat detector]] with only 3 components ! | ||
==PicoBat : a PIC-based simple and cheap ultrasonic detector== | ==PicoBat : a PIC-based simple and cheap ultrasonic detector== | ||
− | + | A short video clip is sometimes better than a long explanation : | |
{{#ev:youtube|EjEkXlET0CM}} | {{#ev:youtube|EjEkXlET0CM}} | ||
− | The idea of this circuit is to hack PIC oscillator circuit, by replacing the crystal by a piezo sensor : the frequency of the oscillator | + | The idea of this circuit is to hack the PIC oscillator circuit, by replacing the crystal by a piezo sensor : the frequency of the oscillator then depends on [[wikipedia:Ultrasound|ultrasounds]]. |
− | Oscillator frequency is then divided and pushed | + | Oscillator frequency is then divided by 4 by the PIC, and pushed into a piezo speaker. |
+ | |||
+ | It shares the same idea as [[PicoDetector]], the metal detector. | ||
==Circuit Schematic== | ==Circuit Schematic== | ||
− | [[File: | + | [[File:PicoBat-circuit-schematic.png]] |
− | * | + | * The ultrasonic piezo receiver replaces resistor in PIC oscillator circuit |
− | * | + | * SP1 is any piezo speaker you have |
==C Source code== | ==C Source code== | ||
Line 18: | Line 21: | ||
/* | /* | ||
******************************************************************************* | ******************************************************************************* | ||
− | * | + | * picoBAT : an ultra simple ultrasonic bat detector |
******************************************************************************* | ******************************************************************************* | ||
* | * | ||
− | * Author : Bruno Gavand, | + | * Author : Bruno Gavand, February 2009 |
* see more details on http://www.micro-examples.com/ | * see more details on http://www.micro-examples.com/ | ||
* | * | ||
− | * source code for | + | * source code for mikro C compiler V8.2 |
* feel free to use this code at your own risks | * feel free to use this code at your own risks | ||
* | * | ||
− | * target : PIC12 | + | * target : PIC12 |
* | * | ||
* PIC PIN Assignemnt : | * PIC PIN Assignemnt : | ||
* | * | ||
− | * GP0 | + | * GP0 GP1 : piezo speaker |
− | + | * GP5 : ultrasonic transducer receiver | |
− | + | ||
− | + | ||
− | * | + | |
* | * | ||
******************************************************************************* | ******************************************************************************* | ||
*/ | */ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
void main() | void main() | ||
{ | { | ||
− | |||
− | |||
− | |||
/* | /* | ||
* configure GPIO as digital port | * configure GPIO as digital port | ||
Line 61: | Line 47: | ||
CMCON0 = 7 ; | CMCON0 = 7 ; | ||
ANSEL = 0 ; | ANSEL = 0 ; | ||
+ | |||
TRISIO = 0 ; | TRISIO = 0 ; | ||
− | GPIO = | + | GPIO = 0b01 ; |
− | + | for(;;) | |
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
/* | /* | ||
− | * | + | * toggles speaker outputs |
*/ | */ | ||
− | + | GPIO ^= 0b11 ; | |
− | + | ||
} | } | ||
+ | } | ||
− | + | </pre> | |
− | + | ||
− | + | ||
− | + | ||
− | + | No, there is no mistake, full source code is above ! | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Download project== | ==Download project== | ||
− | Download | + | Download PicoBat-project.zip file for mikroC : [[File:PicoBat-project.zip]] |
Includes : | Includes : | ||
* [[mikroC PRO]] project files for [[PIC12F683]], should work also with most of PIC | * [[mikroC PRO]] project files for [[PIC12F683]], should work also with most of PIC | ||
− | * | + | * picoBat C source code |
− | * | + | * picoBat .HEX files |
[[Category:Projects]] | [[Category:Projects]] | ||
[[Category:PIC12]] | [[Category:PIC12]] | ||
+ | |||
+ | ==Discussion and comments== | ||
+ | {{#w4grb_rate:}} | ||
+ | <discussion /> |
An ultrasonic bat detector with only 3 components !
Contents |
A short video clip is sometimes better than a long explanation :
The idea of this circuit is to hack the PIC oscillator circuit, by replacing the crystal by a piezo sensor : the frequency of the oscillator then depends on ultrasounds.
Oscillator frequency is then divided by 4 by the PIC, and pushed into a piezo speaker.
It shares the same idea as PicoDetector, the metal detector.
/* ******************************************************************************* * picoBAT : an ultra simple ultrasonic bat detector ******************************************************************************* * * Author : Bruno Gavand, February 2009 * see more details on http://www.micro-examples.com/ * * source code for mikro C compiler V8.2 * feel free to use this code at your own risks * * target : PIC12 * * PIC PIN Assignemnt : * * GP0 GP1 : piezo speaker * GP5 : ultrasonic transducer receiver * ******************************************************************************* */ void main() { /* * configure GPIO as digital port */ CMCON0 = 7 ; ANSEL = 0 ; TRISIO = 0 ; GPIO = 0b01 ; for(;;) { /* * toggles speaker outputs */ GPIO ^= 0b11 ; } }
No, there is no mistake, full source code is above !
Download PicoBat-project.zip file for mikroC : File:PicoBat-project.zip
Includes :
Current user rating: 75/100 (60 votes)
powered by commenterra | Recent comments |