Moinsen,
war gerade bei meinen Erzeugern zu Besuch und habe vergeblich versucht
ihren Enkel bzw. meinen Sohn dort ins Bett zu bringen. Nach dem ich das
fünfte Kinderbuch vorgelesen hatte, wollte ich die Nachttischlampe
ausschalten habe allerdings keinen Schalter gefunden. Mein dreijähriger
Erbe sagte dann etwas mitleidig zu mir " ich zeig dir das Papa",
faste die Lampe an (am Metallgehäuse) und siehe da die Lampe schaltete
sich aus.
Ich war begeistert und wollte sofort in Vatis Keller um die Lampe
aufzuschrauben und der selben die Funktionsweise zu entreißen. Leider
wurde mir das von meiner herzlosen Mutter untersagt.
Nun meine Frage (endlich! ich weiß):
Weiß einer wie die Dinger funktionieren????
Ich würde mal auf Widerstandsmessung mit OP in Brückenschaltung tippen
ist aber wohl auch anfällig..... Ach man meine Mama ist so gemein...
;-)
Ich will auch so eine Lampe!
Vielen Dank für die Hilfe
In diesem Sinne
Björn
Hi Björn,
ich habe mir auch mal so einen Dimmer gebaut (kurze Berührung EIN/AUS,
lange Berührung DIMMEN). Vor einiger Zeit gab es mal einen Bausatz bei
Conrad, weiß aber nicht ob es den noch gibt. Ansonsten basiert die
Schaltung auf einem Dimmer-IC von SIEMENS (SLB 0587). Musst mal nach
AppNotes suchen.
Gruß,
Olaf
Leider nützt in diesem Fall der FI-Schalter überhaupt
nicht. Der Fehlerstrom ist viel zu gering, ausser man fasst
mit der anderen Hand einen Heizungskörper oder ähnliches an.
Mit einem PIC (tut mir leid :) ) hatte ich mal einen Dimmer so gebaut.
Läuft noch immer täglich.
Einen Controller-Ausgang über einen Widerstand auf einen anderen
Eingang legen und den Ausgang toggeln. Der Eingang liegt an einer
Sensortaste (nur ein Kontakt)
Die Zeit bis der Eingang den Signal folgt wird gemessen(wenige Zyklen).
Wenn Du den Finger auflegst veränderst Du die Kapazität des Systems und
die Zeit wird länger.
Zur Sicherheit wird es noch ein paarmal geprüft, damit der 500W
Deckenfluter nicht meint ein Eigenleben zu führen. (Bislang nicht
einmal in den 5 Jahren geschehen)
MooseC
@MooseC,
ey das hört sich doch schon gut an, hab's aber leider noch nicht ganz
verstanden, könntest du das noch etwas genauer beschreiben?!
(Sensortaste?)
Vielen Dank....
Björn
PS.: Das mit dem PIC muss dir nicht leid tun. Ich benutz die auch. Die
Diskussion ist eh albern. Muss doch jeder selber wissen, über was er
sich ärgern möchte.
Hallo, ich fand die Lampe toll von der im ersten Posting geschrieben
wurde und bin jetzt mal zum Conrad gestiefelt und hab' mir einen
Bausatz mit SLB0587 gekauft - prima Sache eigentlich!!! Ich finds nur
leicht dämlich dass das Gerät tierisch brummt - weiß jemand was ich
falsch gemacht hab'??
20 Euro war zwar mal wieder recht teuer (der Baustein kostet bei
reichelt 2,50 und die restlichen Kondensatoren könnens ja eigetnlich
nciht ausgemacht haben....) aber ist schon lustig....
mfg
Christian
@MooseC
stell doch mal das Dimmerprojekt ins Forum, kann doch jeder mal auf AVR
umstricken dem's nicht passt.
Also ich schätze mal 50- oder 100-Hz aus Netz gewonnen, Periodenzeit in
x-Schritte zerlegt ... ---->und an Triac.
Den Clou mit dem Sensor und Zeitmessung, DER ist interessant.
mfg
Stromi
Ich kenne solche Touch-Bedienung von früher, da hat man nur die Basis
eines Transistors rausgeführt und da drangelangt. Der Brumm reicht aus
um ihn durchzusteuern. Ich denke das war eine Darlingtonschaltung. Hat
auch gut funktioniert.
Der Clou mit dem Sensor ist eine wirklich ganz einfache Sache die hier
(fast) jeder hinbekommen sollte. Im übrigen ist es nicht meine Idee,
sondern aus dem CMOS-Kochbuch abgeguckt, nur eben mit einem Controller
gelöst.
MooseC
Moinsen,
so hab das Ding nun endlich mal aufgebaut und funktioniert wunderbar.
Wollte mich nur noch mal bedanken! Also vielen DANK!!!!
Wenn's interessiert hier der Testcode ( PIC CCS-C):
#include <16F876.h>
#device ICD=TRUE
#device adc=8
#use delay(clock=10000000)
#fuses HS,NOWDT
#define TRIGGER PIN_C0
long mittelwert[16];
#int_CCP1
CCP1_isr()
{
static int index = 0;
mittelwert[index] = ccp_1;
output_low(TRIGGER);
}
void main() {
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_CAPTURE_RE);
enable_interrupts(INT_CCP1);
enable_interrupts(global);
while (1)
{
if ( TRIGGER == 0)
{
delay_ms(1);
set_timer1(0);
output_high(TRIGGER);
}
}
}
@Björn,
was soll dieses Codefragment denn bloß darstellen ?
mittelwert wird nie ausgewertet.
index ist immer 0.
Das einzige was ich erkennen kann ist, daß TRIGGER wohl eine Art
Astabiler Multivibrator mit weitgehend konstanter Low-Zeit von 1ms sein
soll.
Ich glaube daher nicht, daß auch nur irgend jemand mit diesem
Codefragment was anfangen kann.
Ehe daraus mal ein Dimmer wird, fehlen wohl noch 99% des Codes.
Peter
@Peter,
deshalb habe ich auch TESTCODE geschrieben es geht doch lediglich darum
diese Sensorgeschichte zu testen da kann man in die CCP-Register
schauen und sehen wie sich die Werte bei Berührung oder eben ohne
unterscheiden. Darum ging es doch in diesem Thread oder nicht?
Wie man einen Dimmer aufbaut, solltest gerade Du sowieso besser wissen
als ich. Man könnte damit ja auch seinen Wecker an- und ausschalten
oder was weiß ich nicht alles.
Wenn du mittelwert gerne auswerten möchtest, bitte schön - ich wollte
das in meinem TESTCODE eben nicht.
Man kann dann über index oder Mittelwert irgend ein Filter aufbauen und
dann einen Dimmer implementieren oder ne PWM die bei der Berührung der
Türklinge "La Paloma" über nen Buzzer raustutet ...
Das das in meinem Code noch nicht enthalten ist, tut mir leid.
Also nichts für ungut und in diesem Sinne
Björn
@Björn,
wie siehst Du denn den Inhalt von CCP ?
Hast Du denn einen ICE für der PIC ?
Ist sowas nicht schweineteuer ?
Ich benutze immer die UART zum Debuggen.
Ist ja bei Flashbausteinen kein Thema mehr, schnell mal ein printf() an
die entsprechende Stelle zu setzen.
Wenns nur ein Testprogramm sein soll, wäre das hier vielleicht besser
gewesen:
int testausgabe;
#int_CCP1
CCP1_isr()
{
testausgabe = ccp_1;
output_low(TRIGGER);
}
Zumindest hätte man sich nicht stundenlang den Kopf darüber zerbrochen,
was es mit dem "mittelwert[16]" und "index" auf sich haben soll.
Peter
Moin,
ok - ich hätte erwähnen können, dass der Code mit dem ICD debuggt
wurde (deshalb auch #device ICD=TRUE).
Der ist nicht teuer, da ich ihn selber gebaut habe.
...und mit dem ICD kann man sich ganz bequem das CCP-Register
anschauen. Einfach Breakpoint in die ISR und fertig.
Gut ich hätte ne printf() mit aufnehmen können.
Bei Bedarf schreib ich mal was Allgemeiners!
OK?
In diesem Sinne
Es könnte noch Fehlstrom oder elektrostatische Entladung gemessen werden
oder auch die Bioelektrizität (damit finden z. B. Haie ihre Beute),
aber das wäre aufwändig und wohl störanfällig.