Metal detektor

Fra HTX Arduino
Spring til navigation Spring til søgning
Billede af metal detektor modul

Overordnet beskrivelse af metal detektor modul: Metal touch sensor module, er et modul lavet til Ardruino men den duer også til andre ting. Den har 4 pins. Pin AO er et analogt output, Pin GND er ground, Pin 5+ er hvor den får strøm fra og skal sluttes til strømforsyningen. Pin DO er digitalt output. Måden den fungere på er ved at rødre benet på den sorte touch sensor i enden af boardet, hvor den derefter sender et signal ud af AO og DO. DO-signalet skulle gerne være pulserende med en frekvens på 50 Hz og have en vide på 4.8 ms. AO signalet er det inverterede signal af DO, her er der så stadig en frekvens på 50 Hz og med en vide på 15.2 ms. Man kan se at den duer ved at en lampe lyser rød når der kommer strøm igennem og den er tændt og en anden lampe lyser når man rører ved benet på den sorte touch sensor i enden.

graf fra http://www.arvydas.co.uk/2012/08/arduino-touch-sensor-ky036/ graf fra http://www.arvydas.co.uk/2012/08/arduino-touch-sensor-ky036/


Princip-diagram for Metal detektor

I pricippet fungere modult når man rører det med en finger eller noget metal.

Principskitse af metaldetektor

Print Metal detektor

Når der er strøm i +5v lyder led1. når der er strøm i både +5v og igennem transistoren lyder led2. A0 bliver inverteret først men er ellers magen til D0 som kan ses på de kommer fra samme kilde, transistoren. Bemærk: det er ikke sikkert kredsløbet ser sådan ud, det er bare et kvalificeret bud på hvordan det kunne se ud.

Board og Schematich ligger i en Fil:Metal touch sensor.zip.

Diagram over Metal-detektoren

Diagrammet metal detektor

Andre versioner af metaldetektor

Der findes også en version hvor der kun er 3 udgangspinde: GND,5V+ og DO. Dennes board er ikke rødt men grønt.

Software modulet Modul_Metaldetektor.jal

Overordnet beskrivelse af hvad softwaren kan

Anvendelse af Meal detektor

Medmindre man har brug for noget meget specifikt kan modulet udmærket bruges i sig selv som en kontakt eller sensor der tændes når man eller metal rører ved det. hvis man nu skulle bruge dne til noget specifikt kan nogle meget enkle koder se sådan ud: Til en audrino ville koden se sådan ud:

//setup default LED on pin 13 const int ledPin = 13; //setup touch sensor on pin 3 const int touchPin = 3;

//store the time when last event happened unsigned long lastEvent = 0; //store the state of LED boolean ledOn = false;

//setup pins void setup() {

 pinMode(ledPin, OUTPUT);
 pinMode(touchPin, INPUT);

}

void loop(){

 //read touch sensor state
 int touchState = digitalRead(touchPin);

 //only interested in the HIGH signal
 if (touchState == HIGH) {
   //if 50ms have passed since last HIGH pulse, it means that the
   //touch sensor has been touched, released and touched again
   if (millis() - lastEvent > 50) {
     //toggle LED and set the output
     ledOn = !ledOn;
     digitalWrite(ledPin, ledOn ? HIGH : LOW);
   }

   //remember when last event happened
   lastEvent = millis();
 }

} enable_digital_io() -- disable analog I/O (if any) -- men vi bruger jo JAL så derfor skal det skrives som nedenunder-- IO definitioner portc_direction = all_output

alias kontakt is pin_A3 pin_A3_direction = input

--


-- Main loop forever loop

  if kontakt=HIGH then
     portc=ON
     delay_50ms(10)
  if kontakt=LOW  then
     portc=OFF
     delay_50ms(10)

end loop --


Når man vil anvende Modul_Metaldetektor, så skal man include Modul_Metaldetektor.jal som følger:

   include Modul_Metaldetektor.jal

Hvis Modul_Metaldetektor.jal ligger i \lib inde i c:\jalpack så kan compileren finde modulet.


JAL-filen ligger sammen med et par eksempler inde i Fil:Metaldetektormodul.zip

Modul_Metal detektor er testet og den duede ikke men princippet i den gælder stadig med at man måler på det analoge output man får, omdanne det til at tal ved at læse den med picens adc_holst og derefter enten sende high eller low alt efter tallet. Da jeg testede den gjorde jeg det med to lamper men ingen af dem lyste.

PIC pin
PIC16F684 a2, a4
PIC16F690 a0, a1, a2, a4, c0, c1, c2, c3, c6, c7</ref>, b4, b5

Forklaring af Modul_Metal detektor software

softwaren er bygget op så en led lampe lyser når man trykker på det grå metal i spidsen af modulet.

Initialisering af softwaren

Initialiseringen kan i Pseudokode udtrykkes som følger:

   Læs opsætningen i Modul_XX_def.jal
   læs kontakt
   output=?
eller for den anden
   Læs opsætningen i modul metal detektor
   læs variablen metal
   tænd lamper alt efter værdien af metal


Moduler på Holstebro HTX
Tastaturer Displays AD-konvertering I/O-ekspander Serielt Interface Færdige Andre
RC-tast - AD-tast - M_tast ALCD - LCD ADC_holst - ADC
mcp3201 - mcp3208
input - output Seriel_holst - Serial hardware
Serial hw int cts - Serial software
Stepmotor - RFID
RGB - RF-link - Afstand
Humidity - Analog temp - Dig temp
Accelerometer
Rotary Encoder

Oversigt over Hardware Moduler på Holstebro HTX

Keyes-moduler på Holstebro HTX
Simple Digitale Input Switch modul - Reedrør - Hall sensor - Optisk Skift - Photo Gate - Vibration sensor - Vibration switch - Tilt sensor - Kviksølv kontakt - Linje følger
Digitalt kodede Input IR Modtager - Humidity -Digital Temperatur
5 benede Input Rotary Encoder -XY Joystick
Digitale 4 benede Input Magic Cup Light - LED 3-farve - RGB - RF-link - Afstand
Justerbare analoge/digitale Input Reed Magnetsensor - Temperatur Niveau - Metal detektor - Flamme - Hall Kontakt - Almindelig Mikrofon - Følsom Mikrofon
Simple digitale Output LED 2-farve - Aktiv Buzzer - Blink LED - IR LED - Laser - Relæ modul - Passiv Buzzer
Analoge input Analog Temperatur - LDR - Finger Pulsmåler - Lineær Magnetfelt