Led soll im dunkeln leuchten

Gast #2200519
Lesenswert?

Hallo,

ich bin noch relativ neu in dem Gebiet der Mikrocontroller. Habe mir das 
Paket von Franzis und das Buch von Dr. Günter Spanner gekauft.
Jedoch sind dort die Quelltexte wenig, bis schlecht beschrieben und mir 
fehlt noch der Code zu meinem Versuch.
Als Microcontroller verwende ich den ATTiny13.

Ich würde mir gerne eine Platine mit verschiedenen LED's löten, welche 
bei Dunkelheit angesteuert werden. Sprich der Microcontroller soll z.b. 
PB3 schalten wenn der Phototransistor eine Spannung von ca. 1 Volt 
durchlässt.
Wie soll ich da vorgehen? Mit dem AD-Wandler?
Habe leider keine bis minimale Programmierkentnisse. Wäre vielleicht 
jemand bereit mir einen Quelltext in C# zu schreiben und ihn evtl zu 
erklären?

Vielen Dank im Vorraus.

Gruß
Rhino
Gast #2200535
Lesenswert?

Rhino schrieb:
> Habe leider keine bis minimale Programmierkentnisse. Wäre vielleicht
> jemand bereit mir einen Quelltext in C# zu schreiben und ihn evtl zu
> erklären?
Von Code schreiben lassen lernt man nichts. Programmieren lernt man 
durch probieren und lesen.
C# gibt es nicht für Mikrocontroller. Wenn, dann C oder Assembler.
Les dir hier im Forum die Tutorials durch und probiere sie aus.
Wenn du C programmierst dann brauchst du ein gutes Buch. Referenz ist 
hier immer noch der Kerningham Ritchie

Hier: Artikelübersicht

Viel Erfolg
Gast #2200599
Lesenswert?

> Als Microcontroller verwende ich den ATTiny13.

Datenblatt besorgen und benutzen.


> Ich würde mir gerne eine Platine mit verschiedenen LED's löten, welche
> bei Dunkelheit angesteuert werden. Sprich der Microcontroller soll z.b.
> PB3 schalten wenn der Phototransistor eine Spannung von ca. 1 Volt
> durchlässt.

Ein Fall für den internen Comparator:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#AC_.28Analog_Comparator.29

Rhino schrieb:
> Habe leider keine bis minimale Programmierkentnisse.

Na dann ganz von Anfang anfangen und immer weiter:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Einf.C3.BChrungsbeispiel

Und hier findest du die Übersicht:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Zugriff auf Register bzw. IO-Ports, Programmierung mit Interrupts sind 
die Themen, die du brauchen wirst. Schritt für Schritt lesen, 
ausprobieren, was unklar ist fragen.

Viel Erfolg!
Gast #2201002
Lesenswert?

Erstmal danke für die Antworten. Natürlich bin ich noch relativ am 
Anfang vom Programmieren und werde mir noch einige Tutorials durchlesen.
Jedoch wäre es sehr nett wenn mir jemand den Quelltext geben könnte, 
damit ich mein Bauteil fertig bekomme.

Ich stelle mir das ganze so vor:

PB3 oder PB4 sind LED-Ausgänge.
PB2 ist ebenfalls ein Ausgang. Es wird zwichen PB2 und PB1 (ADC) ein 
Phototransistor geschaltet, welcher als Widerstand für den Strom 
verwendet wird.
Ist es Hell,  kommt in PB1 viel Strom an (Es leuchtet nichts). Ist es 
dunkel, kommt in PB1 wenig Strom an (Die LED brennt).
Demnach muss PB2 ja ständig als Ausgang geschaltet sein.

Also wenn PB1 <= ca.1,5 Volt soll die Lampe brennen.

Gruß
Rhino
Moderator Persönliche Seite #2201042
Lesenswert?

Rhino schrieb:
> Erstmal danke für die Antworten. Natürlich bin ich noch relativ am
> Anfang vom Programmieren und werde mir noch einige Tutorials durchlesen.

Wenn ich den nächsten Satz lese, glaube ich schon nicht mehr an den Satz 
darüber...

> Jedoch wäre es sehr nett wenn mir jemand den Quelltext geben könnte,
> damit ich mein Bauteil fertig bekomme.

Dir geht es also nur darum, Dein Bauteil fertig zu bekommen? Was zahlst 
Du?
Gast #2201062
Lesenswert?

>Natürlich bin ich noch relativ am Anfang vom Programmieren und werde mir >noch 
einige Tutorials durchlesen.
Was ist Anfang?
Viele fangen damit an, ein Programm zu entwerfen, das eine LED im 
gewünschten Rhythmus blinken lässt.
== erstes Erfolgselebnis
Wer mit Assembler anfängt, lernt gleich noch, was ein µC in diesem oder 
jenen Fall so macht.
Jetzt muss man sich noch Gedanken zu einem Schaltungsentwurf machen, wie 
man den Phototransistor auswerten kann. (z.B. Spannungsabfall an einem 
Widerstand messen)

usw.

MfG
Gast #2201088
Lesenswert?

Ich habe nicht umsonst so viel geld in die Bauteile und Bücher gesteckt 
damit ich es gleich sein lasse.
Das LED Blink Programm habe ich schon Programmiert. Aber wenn ich mir 
das Kapitel über Messwerte anschaue muss ich doch passen.

Ich habe zwar hier schon ein Teil geschrieben und ein Teil der Platine 
gelötet, aber für den Rest muss ich noch etwas lesen. Deswegen würde ich 
gerne von euch Hilfe bekommen.
1
#define F_CPU 1200000
2
#include <avr/io.h>
3
#include <util/delay.h>
4
int main (void)
5

6
{ DDRB = 0b000010 | 0b001000 | 0b010000;
7

8

9
  ADMUX = (1<<REFS0);
10
  ADCSRA = (1<<ADEN) | (1<<ADFR) | (1<<ADIE);
11
  ADC_result 0 ADCH/16
12

13

14

15

16

17

18

19

20

21

22
  while (1)
23

24
  {   PORTB = (1<<PB1);
25

26
  }
27

28

29

30
}

Das hier ist mein Grundgerüst. Weiter weiß ich jedoch nicht. Steinigt 
mich bitte nicht wenn hier etwas total falsch ist :D
Gast #2201203
Lesenswert?

Zur Programmierung kann ich nichts sagen, da ich diese µC-Familie nicht 
verwende.
Ein Tipp zur möglichen Auswertung des Phototransistors:
Du schaltest einen Widerstand (z.B. 10k) und den Phototransistors 
(Polarität beachten) in Reihe. Die eine Seite an  +5V, die andere Seite 
an Masse. Mit einem Voltmeter die Spannung zwischen Masse und dem 
Abgriff des entstandenen Spannungsteilers  messen. Den Widerstandswert 
jetzt solange verändern, bis er den von Dir gewünschten Wert (1V) beim 
Abdunkeln erreicht.
Nach dieser Arbeit kann man mit dem ADC des µC die Spannung messen und 
über einen Soll-IST vergleich die LED aus- und einschalten.
MfG

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren