Forum: Mikrocontroller und Digitale Elektronik Dunkelheit-Lichter gehn an


von Max S. (caligula141)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich möchte einen Bilderrahmen konstruieren, der tagsüber "Energie 
sammelt", um Abends beleuchtet zu werden. Habe mal ein ganz groben 
Schaltplan gemacht, da ich für die entsprechenden Teile in Eagle keine 
Bibliotheken gefunden habe.

Kann mir jemand entsprechende Bibliotheken für

-Solarzellen
-Photoresistoren

nennen?

Quarz, Abblockkondensatoren etc. fehlen noch. Um die Leistung der 
Solarzelle zu messen, brauche ich doch lediglich einen Widerstand 
verbauen und die Spannung messen, um I zu bestimmen?

Was für eine Solarzelle soll verwendet werden? Müssen die LEDs über 
einen Resistor geschlatet werden (4-6 mit jeweils 10mA werden 
angeschlossen)?

Vielen Dank für Eure Hilfe!

Gruß

Caligula

von fonsana (Gast)


Lesenswert?

Nimm einen 10er-Pack Solargartenlampen aus dem Baumarkt, kleb die 
Zusammen und fertig.

fonsana

von Augenkrebs (Gast)


Lesenswert?

Welches Übersetzungsprogramm hat dieses Wort geschaffen?

Dunkelheit-Lichter

von Stutz (Gast)


Lesenswert?

Wieso möchtest Du Deine Bilder mit rot/orangenen LEDs beleuchten?

von Karl H. (kbuchegg)


Lesenswert?

Und im übrigen möchtest du den Reset Pin vom µC nicht verbauen, solange 
du noch andere Pins übrig hast und die Not nicht übermächtig wird.

von Readers-Digest (Gast)


Lesenswert?

Max S. schrieb:
> geschlatet

meinst du geschlachtet?

von Karl H. (kbuchegg)


Lesenswert?

> Um die Leistung der Solarzelle zu messen, brauche ich doch lediglich
> einen Widerstand verbauen und die Spannung messen, um I zu bestimmen?


Wozu willst du die überhaupt wissen?
Wenn der Akku noch Spannung hat, dann kannst du die LED leuchten lassen. 
Wenn nicht, dann nicht. Und bei "Akku"-geräten ist es dann ja auch so: 
Wenn der Akku leer ist, dann gehen sie von alleine aus :-)


Ach ja: Quarz braucht die Schaltung keinen. Quarz ist in dem Fall nur 
ein Stromfresser für nichts.

von War-hole (Gast)


Lesenswert?

Der To hat mit viel Mühe einen Schaltplan gepostet. Ein Lob dafür, dass 
er gemerkt hat, dass dies hier gern gesehen wird!

Allerdings macht der Schaltplan durch windschiefe Linien einen gewissen 
künstlerischen Eindruck, wie man ihn selten findet.

Ich möchte ihn daher für den Kleinkunstpreis des Forums vorschlagen.

Ob er uns sein Malprogramm verrät?

von Harald W. (wilhelms)


Lesenswert?

Stutz schrieb:
> Wieso möchtest Du Deine Bilder mit rot/orangenen LEDs beleuchten?

Nach der blauen Periode:
http://de.wikipedia.org/wiki/Pablo_Picasso#Tod_Casagemas_.E2.80.93_Beginn_der_Blauen_Periode
kommt die rote Periode. :-)
Gruss
Harald

von Karl H. (kbuchegg)


Lesenswert?

> Kann mir jemand entsprechende Bibliotheken für
>
> -Solarzellen
> -Photoresistoren
>
> nennen?

Machs nicht kompliziert.
Die Solarzelle wirst du wahrscheinlich ohnehin nicht auf der Platine 
verbauen. Die wird mit Drähten angeschlossen, also muss es auf der 
Platine nur ein paar Lötaugen dafür geben. Wenn du dir daher aus der 
Verbindungstechnik einfach einen 2-poligen Stecker (zb von den 
Stiftleisten) holst, dann passt das schon.

Und ein Photoresistor, vulgo LDR, ist auch nichts anderes als ein 
Widerstand, bei dem die Beinchen etwas weiter zusammen sind. Hast du so 
ein Teil schon mal in Natura gesehen? Das ist einfach nur eine kleine 
Scheibe, Durchmesser vielleicht 5 bis 6 mm, 2mm stark, aus dem 2 dünne 
Drähte rauskommen. Und auch den wirst du wahrscheinlich nicht auf der 
Platine verbauen, sondern der kommt an eine Bohrung im Gehäuse und mit 
den Drähtchen musst du dir was einfallen lassen, wie du mit denen an die 
Platine kommst.

von Crude analytics (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> ein Stromfresser für nichts.

Guter Vorschlag und gutes Thema. Aber in diesem Fall völlig überflüssig.

Da Vcc und GND des unbekannten µC nicht angeschlossen sind, kann auch am 
RESET-Pin kein Strom fliessen.

von Karl H. (kbuchegg)


Lesenswert?

War-hole schrieb:
> Der To hat mit viel Mühe einen Schaltplan gepostet. Ein Lob dafür, dass
> er gemerkt hat, dass dies hier gern gesehen wird!

Da hast du recht.

> Allerdings macht der Schaltplan durch windschiefe Linien einen gewissen
> künstlerischen Eindruck, wie man ihn selten findet.

Sei nicht so.
Immerhin hat er sich die Mühe gemacht und aus Eagle die Bauteile 
rauskopiert. Find ich so gesehen ok.

von trauriger (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Hast du so
> ein Teil schon mal in Natura gesehen? Das ist einfach nur eine kleine
> Schheibe, Durchmesser vielleicht 5 bis 6 mm, 2mm stark, aus dem 2 dünne
> Drähte rauskommen.

Oh Mann, möchtest du deine Stärken nicht lieber bei kniffeligen 
C-Programmen einsetzen?

von Harald W. (wilhelms)


Lesenswert?

Karl Heinz Buchegger schrieb:

> Sei nicht so.
> Immerhin hat er sich die Mühe gemacht und aus Eagle die Bauteile
> rauskopiert. Find ich so gesehen ok.

Ja, ein handgemalter Sxchaltplan ist allemal besser als gar kein
Schaltplan.
Gruss
Harald

von War-hole (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Immerhin hat er sich die Mühe gemacht und aus Eagle die Bauteile
> rauskopiert. Find ich so gesehen ok.

Ja, ist schon ein beachtlicher Ansatz. Darauf muss einer erst mal 
kommen.

von War-hole (Gast)


Lesenswert?

Harald Wilhelms schrieb:
> Ja, ein handgemalter Sxchaltplan ist allemal besser
                      > ^ <

zumal dadurch der persönlichen kreativen Seite zum Ausdruck verholfen 
werden kann. In welchem technischen Bereich kann man das noch so 
ungehindert tun?

von Stefan H. (hohmi)


Lesenswert?

Um eagle zu verstehen empfehle ich dir dieses Video:

http://m.youtube.com/results?q=eagle%20tutorial%20deutsch#/watch?v=YoVen9os4Sk

Hat mir sehr geholfen!

Dort sind zwar keine Solarzellen, aber die Funktionsweise von eagle ist 
sehr gut beschrieben.
Für die Solarzellen im Schaltplan langen ja auch zwei Klemmen.

Ein Ausgang vom Atmega8 kann 20ma schalten, maximal hällt er jedoch 
40ma, ist aber nicht zu empfehlen. Ansonsten musst du die LEDs über 
einen Transistor schalten, falls es mit den Ausgängen knapp wird.

An den Reste Eingang kommt ein 10k widerstand der an Vcc hängt.

Und der vorwiderstand an deinen LEDs ist auch falsch dimensioniert mit 
deinen Angaben. Google mal nach "Berechnung vorwiderstand LED".

Hoffe konnte dir ein wenig weiter helfen.

mit freundlichen Grüßen
Hohmi

von Histaminum historicum (Gast)


Lesenswert?

Max S. schrieb:
> Gruß
>
> Caligula

Da die antiken Quellen Caligula praktisch einhellig als wahnsinnigen 
Gewaltherrscher beschreiben und sich zahlreiche Skandalgeschichten um 
die Person des Kaisers ranken, ist er wie kaum eine zweite 
Herrscherpersönlichkeit der Antike zum Gegenstand belletristischer und 
populärwissenschaftlicher Bearbeitungen geworden.

von Max S. (caligula141)


Angehängte Dateien:

Lesenswert?

Hallo,

Danke an Stefan H. und Herrn Buchegger für die qualifizierten 
Antworten!
Was für Solarzellen sind denn nun zu empfehlen für diese Anwendung?
Bei einem Spannungsteiler so wie ich das sehe kürzt sich die 
Umrechnungskonstante
 raus oder?

Also könnte Folgendes mal ein Anfang sein?
1
$regfile = "attiny13.dat"
2
$crystal = 4000000                                          'interner Oszilator=4MHz
3
$hwstack=40
4
$swstack=16
5
$framesize=32
6
7
Ddrb = &B00000010                                           'Porb.1 ist ein Ausgang
8
9
Config Timer0 = Timer , Prescale = 1024                     'Timer einstellen: 19200 Signale für 1s
10
11
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'für den ADC: AVCC Referenzspannung verwenden
12
Start Adc
13
14
Const R1 = 100                                              'konstanter Widerstand (Spannungsteiler);1M
15
Dim Spannung As Word
16
Dim Rvar As Single                                          '8Bit+16Bit+32Bit=56Bit=7Byte von 64
17
18
Portb.1 = 0                                                 'init
19
Timer0 = 0                                                  'init
20
21
Do                                                          'mainloop
22
23
If Timer0 >= 255 Then                                       'mehr als 15 mal pro Sekunde Spannung messen
24
   Spannung = Getadc(2)                                     'Spannung die an PC0 anliegt (Zahl zwischen 0 und 1024(=5V))
25
   Rvar =(spannung * R1) / 1024                             'Umrechunungskonstante kürzt sich raus; Rvar wird ermittelt
26
   If Rvar >= 100 Then                                      'wenn es dunkel ist ...
27
      Portb.1 = 1                                           '...Licht einschlaten
28
   End if
29
   Timer0 = 0
30
End If
31
32
Loop                                                        'mainloop
33
34
End

Er meckert noch wegen den Variablen-Typen. Kann mir da jemand was sagen?

Sehe ich das richtig, dass der Tiny13 keinen UART hat?

>Wozu willst du die überhaupt wissen?
>Wenn der Akku noch Spannung hat, dann kannst du die LED leuchten lassen.
>Wenn nicht, dann nicht. Und bei "Akku"-geräten ist es dann ja auch so:
>Wenn der Akku leer ist, dann gehen sie von alleine aus :-)

Ich fänds' mal ganz interessant zu wissen wo(in welchem Teil des Raumes 
ob Regal oder was auch immer) wie viel Strom durch die Solarzelle 
bereitgestellt wird.

Gruß

Caligula (wahnsinnig-eventuell, gewalttätig-nein)

von Davis (Gast)


Lesenswert?

Max S. schrieb

> Sehe ich das richtig, dass der Tiny13 keinen UART hat?

Ja.

von Kunstkritiker (Gast)


Lesenswert?

Max S. schrieb
> Danke an Stefan H. und Herrn Buchegger für die qualifizierten
> Antworten!

Und die anderen haben dich ermuntert, ordenlich zu eageln :-)

Na also! Geht doch!

von Karl H. (kbuchegg)


Lesenswert?

Max S. schrieb

> Bei einem Spannungsteiler so wie ich das sehe kürzt sich die
> Umrechnungskonstante
 raus oder?
>

Das siehst du so gesehen richtig.
Was du nicht gesehen hast ist, dass du dir hier

>    Spannung = Getadc(2)                                     'Spannung
> die an PC0 anliegt (Zahl zwischen 0 und 1024(=5V))
>    Rvar =(spannung * R1) / 1024
> 'Umrechunungskonstante kürzt sich raus; Rvar wird ermittelt
>    If Rvar >= 100 Then                                      'wenn es

die ganze Rückrechnung sparen kannst.
Du brauchst dir nur einmalig ausrechnen oder ausprobieren, welchen Wert 
der ADC liefern wird, wenn der LDR die 100k hat. Ich würds einfach 
ausprobieren, bzw. bei den von dir angenommenen LDR Werten einfach mal 
in der Mitte, also bei 512 ansetzen :-)

Hint: Man könnte auch den Schwellwert von aussen vorgeben :-)
einen ADC Pin hast du noch frei. Da könnte man mit einem Poti die 
Schwelle Hell/Dunkel auch einstellbar machen. Was recht praktisch sein 
dürfte, da an verschiedenen Punkten im Raum ja auch verschiedene 
Helligkeiten herrschen zwischen Tag und Nacht.


> Er meckert noch wegen den Variablen-Typen. Kann mir da jemand was sagen?

'Er meckert' ist keine sinnvolle Fehlermeldung.
Der Compiler schreibt dir da sicher nicht hin "Ich meckere".
Von welchen Variablen spricht der Compiler? WElchen Datentyp haben die? 
An welcher Stelle wird vom COmpiler was angekreidet? WElche Datentypen 
sind dort gefordert/benutzt?

Damit kommt man dem ganzen auf die Spur.

> Ich fänds' mal ganz interessant zu wissen wo(in welchem Teil des Raumes
> ob Regal oder was auch immer) wie viel Strom durch die Solarzelle
> bereitgestellt wird.

OK.
Dann überleg dir, wie du das machen kannst. Den ADC3 hast du ja noch 
frei. Schwierig wirds allerdings, die erhaltene Information aus dem Tiny 
rauszukriegen. Mit lediglich einer LED kann man Zahlenwerte eher 
schlecht mit einem Menschen kommunizieren.

von Max S. (caligula141)


Angehängte Dateien:

Lesenswert?

Hallo Karl Heinz,

> Hint: Man könnte auch den Schwellwert von aussen vorgeben :-)
> einen ADC Pin hast du noch frei. Da könnte man mit einem Poti die
> Schwelle Hell/Dunkel auch einstellbar machen. Was recht praktisch sein
> dürfte, da an verschiedenen Punkten im Raum ja auch verschiedene
> Helligkeiten herrschen zwischen Tag und Nacht.

Diesen Tipp nehme ich doch glatt an. Ich hab noch ein Poti rumliegen mit 
10K und mein LDR liefert bei hellem Licht rund 10K und bei Dunkelheit 
bis zu 2M.
Dem Poti verpasse ich 9K und dem LDR 1,8M.
Ich habe das Verhältnis der festen Widerstände nun angeglichen, so dass 
beide Verhältnisse zwischen Widerstand und ADC durch die selbe lineare 
Funktion beschrieben werden können. (Kann man das so ausdrücken?)
Ich denke, dass ich die ADC-Werte nun also direkt miteinander 
vergleichen kann und so die Lichtempfindlichkeit trimmbar ist. Ist das 
so richtig?

Hier kann man die Werte einsehen: 
http://co2collector.cwsurf.de/widerstande.ods

> 'Er meckert' ist keine sinnvolle Fehlermeldung.
> Der Compiler schreibt dir da sicher nicht hin "Ich meckere".
> Von welchen Variablen spricht der Compiler? WElchen Datentyp haben die?
> An welcher Stelle wird vom COmpiler was angekreidet? WElche Datentypen
> sind dort gefordert/benutzt?
Der Ausdruck "Meckern" ist eine Übernahme eines Habbitus meiner 
Info-Lehrerin. Entschuldige. Das Programm sieht nun so aus. Er sagt mir 
mitlerweile, dass mein Programm zu groß ist: "Out of SRAM...". Der SRAM 
ist doch 64Bytes groß? Ich habe nun doch nur zwei 16Bit große 
Word-Variablen.
Woran liegt denn das?
1
$regfile = "attiny13.dat"
2
$crystal = 4000000                                          'interner Oszilator=4MHz
3
$hwstack = 40
4
$swstack = 16
5
$framesize = 32
6
7
Ddrb = &B00000010                                           'Porb.1 ist ein Ausgang
8
9
Config Timer0 = Timer , Prescale = 1024                     'Timer einstellen: 3906 und 1/4 Ticks für 1s
10
11
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'für den ADC: AVCC Referenzspannung verwenden
12
Start Adc
13
14
Dim Spannung1 As Word
15
Dim Spannung2 As Word
16
17
Portb.1 = 0                                                 'init
18
Timer0 = 0                                                  'init
19
20
Do                                                          'mainloop
21
22
If Timer0 >= 255 Then                                       'mehr als 15 mal pro Sekunde Spannung messen
23
   Spannung1 = Getadc(2)                                    'Spannung die an PC0 anliegt (Zahl zwischen 0 und 1024(=5V))
24
   Spannung2 = Getadc(3)
25
   If Spannung1 >= Spannung2 Then                           'wenn es dunkel ist ...
26
      Portb.1 = 1                                           '...Licht einschlaten
27
   End If
28
   Timer0 = 0
29
End If
30
31
Loop                                                        'mainloop
32
33
End
>Schwierig wirds allerdings, die erhaltene Information aus dem Tiny
> rauszukriegen. Mit lediglich einer LED kann man Zahlenwerte eher
> schlecht mit einem Menschen kommunizieren.
Ich lass es bei diesem Projekt vorerst bleiben, da ich ja sonst 
mindestens auf den m8 umsteigen müsste. Das möchte ich nicht.

von Karl H. (kbuchegg)


Lesenswert?

Ohne mich jetzt in BASCOM wirklich gut auszukennen.

Alleine das hier
$framesize = 32

müsste laut Doku schon mal 32+24 = 56 Bytes
verbrauchen.
Brauchst du diese Framesize?


Ich würd mir an deiner Stelle mal ein paar andere Beispiele in BASCOM 
für den Tiny13 suchen und nachsehen, wie die diese config Abschnitt 
machen. Alle Beispiele, die ich bis jetzt gefunden habe, geben immer nur 
das regfile und crystal an.

von Max S. (caligula141)


Lesenswert?

Daran liegt es. Das habe ich grade auch rausgefunden. Aber ich weiß 
nicht wie viel hwstack, framesize und swstack ich brauche. Ich schau mal 
ob ich was finden kann.

von Karl H. (kbuchegg)


Lesenswert?

Hier
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/speicher_hwstack_swstack_frame/

ist das genauer beschrieben.

Wobei ich denke, dass du in deinem Programm (das ja nicht wirklich viel 
macht), keine großen Speicherbereiche für sw-stack und framesize 
reservieren musst.

Aber wie gesagt: Ich bin in BASCOM da auch nicht so firm.

von Max S. (caligula141)


Lesenswert?

So gehts:
1
$hwstack = 0
2
$swstack = 0
3
$framesize = 60

hstack und swstack sind für die Reservierung von Speicher von 
Rücksprungadressen etc. Also wichtig, wenn man mit Interrupts und vielen 
Unterprozeduren oder Funktionen mit Parameterübergabe arbeitet. Das ist 
bei mir nicht der Fall.

Ist die 5V1-Diode die richtige?

Beziehungsweise haut das mit einem/mehreren Kondensator/en und dieser 
Solarzelle hin? 
http://www.conrad.de/ce/de/product/191321/Conrad-Miniatur-Solarzellen-Polykristallin-Nennspannung-5-V-Nennstrom-81-mA/SHOP_AREA_17618&promotionareaSearchDetail=005

von ... (Gast)


Lesenswert?

Ist ja nett, sowas mit einem Prozessor zu machen.
Hier würde reine Analogtechnik aber auch reichen.

von mr. mo (Gast)


Lesenswert?

... schrieb:
> Ist ja nett, sowas mit einem Prozessor zu machen.
> Hier würde reine Analogtechnik aber auch reichen.

Ich habe gerade auch gesucht warum der Kollege das mit einem µC lösen 
will. Bisschen Overkill, aber wenn er da Bock drauf hat warum nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.