Erste Bilder und Beschreibung


Gehäuse (Preform PET) und Akku/Batterie (CR123A):

1

Als Energiequelle kommt ein Akku o. eine Batterie der Größe CR123A zur Anwendung.

Der Akku (hier) hat eine USB Schnittstelle zum Laden über einen Standard Handyladeadapter.

Die Kosten für den Akku liegen bei ca. 7-10 Euro (als Alternative die Batterie ca. 3Euro).

Das Gehäuse ist ein transparenter 9cm Preform PET-Ling (wo nichts rauskommt, kommt auch nichts rein!

Absolut Wasserdicht und fast unzerstörbar!).


Senderplatine:

7

Funktionsbeschreibung:

Zum vorbereitenden Einschalten wird ein Schiebeschalter verwendet

(dazu wird der PET-Ling aufgeschraubt, die "Innereien" rausgezogen,

geschaltet, alles reingeschoben und wieder wasserdicht verschraubt.

Kein Gefummel, da alles in einem Strang verbaut ist.)

Steht der Schiebeschalter auf "ON", können die Sensoren den Sender einschalten.

Ein Taktgenerator gibt Signal an das Sendemodul, welches zum Empfänger funkt.

Zusätzlich gibt es zwei LEDs.

Eine zeigte den Takt des Generators an,

die zweite den Zustand der Sensoren (betätigt/nicht betätigt).

Strom wird dem Akku nur entzogen, wenn einer der Sensoren schaltet.

Kein Standby-Stromverbrauch!

Kein Ton! Als Quelle für den Ton wird ein Glöckchen verwendet!

Die Empfindlichkeit wird durch Drehen des PET-Lings eingestellt.

Dieser steckt in einer Aufnahme, welche fest am Blank befestigt ist.


 

Empfängerplatine:

 3

Akku und Gehäuse wie beim Sender.
Nur ist hier ein Loch in der Verschlusskappe, dass der Ton des Summers rauskommen kann.
4 LEDs ein Vibrationsmotor.
Alles separat schaltbar über ein "Mäuseklavier".
Es gibt keine verschiedenen Lautstärken.
Nur einen Funkkanal für alles!
D.h., man schaltet das Teil ein und fertig.

 

Sequenz_Bisserkennung

4


Source Code:

//ATTINY10 Controller mit AtmelStudio V7
//27.08.2023    V001    Sequenz-Bisserkennung-Erzeugung   

#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>

//Prototypen der Funktionen
void einmal50msBlinken(void);
void einmal100msBlinken(void);
void einmal400msBlinken(void);

int main(void)
{
    int progCounter=0;
   
    DDRB |= _BV(PB2);            //PIN PB2 = output pin
   
    for(;;)
    {
        //////// t=0s/////////////
        if ( progCounter <= 20 )
        {
            einmal100msBlinken();    //dauert 100ms
        }
        /////// t=2s/////////////
        if ( ( progCounter > 20 ) && ( progCounter <= 300 ) )
        {
            einmal400msBlinken();    //dauert 400ms
        }
        /////// t=120s/////////////
        if ( progCounter > 300 )
        {
            einmal50msBlinken();    //dauert 50ms + 60s
            progCounter = 301;
        }
        /////// t=180s...bis unendlich (quasi)
   
        progCounter++;
    }
   
    return 0;
}

void einmal100msBlinken(void)
{
    PORTB |= _BV(PB2);        // turns PIN PB2 high (logic one)
    _delay_ms(50);            // waits 50 milliseconds
    PORTB &= ~(_BV(PB2));    // turns PIN PB2 low (logic zero)
    _delay_ms(50);            // waits 500 milliseconds
}

void einmal400msBlinken(void)
{
    PORTB |= _BV(PB2);        // turns PIN PB2 high (logic one)
    _delay_ms(200);            // waits 200 milliseconds
    PORTB &= ~(_BV(PB2));    // turns PIN PB2 low (logic zero)
    _delay_ms(200);            // waits 200 milliseconds
}

void einmal50msBlinken(void)
{
    int i=0;
   
    PORTB |= _BV(PB2);        // turns PIN PB2 high (logic one)
    _delay_ms(50);            // waits 50 milliseconds
    PORTB &= ~(_BV(PB2));    // turns PIN PB2 low (logic zero)
    for(i=0;i<=60;i++)
    {
        _delay_ms(1000);    // waits 1000 milliseconds
    }
}


Schaltplan Sender

5

Schaltplan Empfänger
6





KONTAKT-Volks_Welsbissanzeiger

 

 

zurück