loetstelle.net
Lötstelle Userforum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Digitale Lösung für Schaltungen / Problem?
Gehe zu Seite Zurück  1, 2, 3 ... , 18, 19, 20  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Microcontroller und DSP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Tux77



Anmeldungsdatum: 23.05.2009
Beiträge: 14
Wohnort: Erding

BeitragVerfasst am: Mi 03.Jun 2009 22:10:23    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

So das hab ich geändert, aber er reagiert trotzdem nicht.

Wie meintest Du das mit den 3 Variablen, schreib mal bitte ein Beispiel, ich stehe grade ein wenig auf dem Schlauch.

MfG
Nicola
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Mi 03.Jun 2009 22:39:07    Titel: Bauteile finden Antworten mit Zitat

Tux77 hat folgendes geschrieben:
Wie meintest Du das mit den 3 Variablen, schreib mal bitte ein Beispiel, ich stehe grade ein wenig auf dem Schlauch.

Hallo Nicola!

Ich meinte das mit dem Mittelwert in etwa so:
Code:
CONFIG ADC = SINGLE, PRESCALER = AUTO, REFERENCE = AVCC
START ADC

DIM messergebnis AS WORD
DIM mittelwert AS WORD
DIM i AS BYTE


mittelwert = 0
FOR i = 1 TO 3
    messergebnis = GETADC(0)
    mittelwert = mittelwert + messergebnis
    WAITMS 1
NEXT i
mittelwert = mittelwert / 3

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.


Zuletzt bearbeitet von gerold am Do 04.Jun 2009 06:47:31, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Tux77



Anmeldungsdatum: 23.05.2009
Beiträge: 14
Wohnort: Erding

BeitragVerfasst am: Mi 03.Jun 2009 23:03:57    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

Danke für die Anregung, werde deinen Vorschlag mal umsetzen, aber nicht mehr heute.
Mein anderes Programm mit der 2fach Messung funktioniert jetzt auch.
Hier das funktionierende Programm (falls jemand Interesse an dem Projekt hat):
Code:
 
$regfile = "m32def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100

'Variablen
Dim Tuer_motor_counter As Integer
Dim Fenster_motor_counter As Integer
Dim Sonnen_sensor_counter As Integer
Dim Mess_counter As Integer
Dim Lichtwert As Word
Dim Rollo_status As Bit
Dim Mess_status As Byte

'Schalter
Taster_tuer_auf Alias Pind.1
Config Taster_tuer_auf = Input                              'Tür AUF

Taster_tuer_ab Alias Pind.0
Config Taster_tuer_ab = Input                               'Tür AB

Taster_gesamt_auf Alias Pinc.6
Config Taster_gesamt_auf = Input                            'Gesamt AUF

Taster_gesamt_ab Alias Pinc.5
Config Taster_gesamt_ab = Input                             'Gesamt AB

Taster_fenster_auf Alias Pinc.4
Config Taster_fenster_auf = Input                           'Fenster AUF

Taster_fenster_ab Alias Pinc.3
Config Taster_fenster_ab = Input                            'Fenster AB

Taster_fenster_stop Alias Pind.2
Config Taster_fenster_stop = Input                          'Fenster STOP

Taster_tuer_stop Alias Pind.3
Config Taster_tuer_stop = Input                             'Tuer STOP

'Motor
Motor_fenster_auf Alias Portd.7
Config Motor_fenster_auf = Output                           'Fenster AUF

Motor_fenster_ab Alias Portc.0
Config Motor_fenster_ab = Output                            'Fenster AB

Motor_tuer_auf Alias Portc.1
Config Motor_tuer_auf = Output                              'Tür AUF

Motor_tuer_ab Alias Portc.2
Config Motor_tuer_ab = Output                               'Tür AB

'Timer0 konfigurieren (15,2587890625 Überläufe/sec)
Config Timer0 = Timer , Prescale = 256
On Timer0 On_timer0
Enable Timer0

'ADC konfiguration
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc


'Interrupts global einschalten
Enable Interrupts


'Hauptschleife
Do
   Debounce Taster_fenster_auf , 1 , Motor_fenster_auf_einschalten , Sub
   Debounce Taster_fenster_ab , 1 , Motor_fenster_ab_einschalten , Sub
   Debounce Taster_tuer_auf , 1 , Motor_tuer_auf_einschalten , Sub
   Debounce Taster_tuer_ab , 1 , Motor_tuer_ab_einschalten , Sub
   Debounce Taster_gesamt_auf , 1 , Gesamt_auf_einschalten , Sub
   Debounce Taster_gesamt_ab , 1 , Gesamt_ab_einschalten , Sub
   Debounce Taster_fenster_stop , 1 , Motor_fenster_stop , Sub
   Debounce Taster_tuer_stop , 1 , Motor_tuer_stop , Sub

   If Fenster_motor_counter = 0 Then
      Motor_fenster_auf = 0
      Motor_fenster_ab = 0
   End If
   If Tuer_motor_counter = 0 Then
      Motor_tuer_auf = 0
      Motor_tuer_ab = 0
   End If
   If Sonnen_sensor_counter = 0 And Rollo_status = 0 Then
      Gosub Messung_1
   End If
   If Sonnen_sensor_counter = 0 And Rollo_status = 1 Then
      Gosub Messung_3
   End If
   If Mess_counter = 0 And Mess_status = 1 Then
      Gosub Messung_2
   End If
   If Mess_counter = 0 And Mess_status = 3 Then
      Gosub Messung_4
   End If
Loop

End

'Timer0-Interrupt-Handler
On_timer0:
   If Tuer_motor_counter > 0 Then
      Decr Tuer_motor_counter
   End If
   If Fenster_motor_counter > 0 Then
      Decr Fenster_motor_counter
   End If
   If Sonnen_sensor_counter > 0 Then
      Decr Sonnen_sensor_counter
   End If
   If Mess_counter > 0 Then
      Decr Mess_counter
   End If
Return


'Motor einschalten
Motor_fenster_auf_einschalten:
   Motor_fenster_ab = 0
   Waitms 200
   Motor_fenster_auf = 1
   Fenster_motor_counter = 610                              ' ca. 40 sec.
Return

Motor_fenster_ab_einschalten:
   Motor_fenster_auf = 0
   Waitms 200
   Motor_fenster_ab = 1
   Fenster_motor_counter = 610                              ' ca. 40 sec.
Return

Motor_tuer_auf_einschalten:
   Motor_tuer_ab = 0
   Waitms 200
   Motor_tuer_auf = 1
   Tuer_motor_counter = 687                                 ' ca. 45 sec.
Return

Motor_tuer_ab_einschalten:
   Motor_tuer_auf = 0
   Waitms 200
   Motor_tuer_ab = 1
   Tuer_motor_counter = 610                                 ' ca. 40 sec.
Return

Gesamt_auf_einschalten:
   Motor_fenster_ab = 0
   Motor_tuer_ab = 0
   Waitms 200
   Motor_fenster_auf = 1
   Motor_tuer_auf = 1
   Tuer_motor_counter = 610
   Fenster_motor_counter = 610
   Sonnen_sensor_counter = 27468                            ' ca. 1800 sec.
   Rollo_status = 0
Return

Gesamt_ab_einschalten:
   Motor_fenster_auf = 0
   Motor_tuer_auf = 0
   Waitms 200
   Motor_fenster_ab = 1
   Motor_tuer_ab = 1
   Tuer_motor_counter = 687
   Fenster_motor_counter = 610                              ' ca. 40 sec.
Return

Motor_fenster_stop:                                         'Fenster STOP
   Motor_fenster_auf = 0
   Motor_fenster_ab = 0
Return

Motor_tuer_stop:                                            'Tür STOP
   Motor_tuer_auf = 0
   Motor_tuer_ab = 0
Return

'Lichtwert überprüfen
Messung_1:
   Lichtwert = Getadc(0)
   If Lichtwert > 495 And Mess_status = 0 Then
   Mess_status = 1
   Mess_counter = 30
   End If
   Reset Lichtwert
Return

Messung_3:
   Lichtwert = Getadc(0)
   If Lichtwert < 470 And Mess_status = 2 Then
   Mess_status = 3
   Mess_counter = 30
   End If
   Reset Lichtwert
Return

'Sonnenautomatik ein
Messung_2:
   Lichtwert = Getadc(0)
   If Lichtwert > 495 Then
   Motor_fenster_auf = 0
   Motor_tuer_auf = 0
   Waitms 200
   Motor_fenster_ab = 1
   Motor_tuer_ab = 1
   Tuer_motor_counter = 427                                 'ca. 28 sec.
   Fenster_motor_counter = 336                              'ca. 22 sec.
   Sonnen_sensor_counter = 27468
   Rollo_status = 1
   Mess_status = 2
   Else
   Mess_status = 0
   End If
   Reset Lichtwert
Return

Messung_4:
   Lichtwert = Getadc(0)
   If Lichtwert < 470 Then
   Motor_fenster_ab = 0
   Motor_tuer_ab = 0
   Waitms 200
   Motor_fenster_auf = 1
   Motor_tuer_auf = 1
   Tuer_motor_counter = 687
   Fenster_motor_counter = 610
   Sonnen_sensor_counter = 27468
   Rollo_status = 0
   Mess_status = 0
   Else
   Mess_status = 2
   End If
   Reset Lichtwert
Return


MfG
Nicola
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tux77



Anmeldungsdatum: 23.05.2009
Beiträge: 14
Wohnort: Erding

BeitragVerfasst am: Mi 17.Jun 2009 23:44:54    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

heute hab ich es gechaft deinen Vorschlag mal umzusetzen und das ist mein Ergebnis:

Code:

$regfile = "m32def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100

'Variablen
Dim Tuer_motor_counter As Integer
Dim Fenster_motor_counter As Integer
Dim Sonnen_sensor_counter As Integer
Dim Rollo_status As Bit
Dim Lichtwert As Word
DIM Lichtmittelwert AS WORD
DIM m AS BYTE

'Schalter
Taster_tuer_auf Alias Pind.1
Config Taster_tuer_auf = Input                              'Tür AUF

Taster_tuer_ab Alias Pind.0
Config Taster_tuer_ab = Input                               'Tür AB

Taster_gesamt_auf Alias Pinc.6
Config Taster_gesamt_auf = Input                            'Gesamt AUF

Taster_gesamt_ab Alias Pinc.5
Config Taster_gesamt_ab = Input                             'Gesamt AB

Taster_fenster_auf Alias Pinc.4
Config Taster_fenster_auf = Input                           'Fenster AUF

Taster_fenster_ab Alias Pinc.3
Config Taster_fenster_ab = Input                            'Fenster AB

Taster_fenster_stop Alias Pind.2
Config Taster_fenster_stop = Input                          'Fenster STOP

Taster_tuer_stop Alias Pind.3
Config Taster_tuer_stop = Input                             'Tuer STOP

'Motor
Motor_fenster_auf Alias Portd.7
Config Motor_fenster_auf = Output                           'Fenster AUF

Motor_fenster_ab Alias Portc.0
Config Motor_fenster_ab = Output                            'Fenster AB

Motor_tuer_auf Alias Portc.1
Config Motor_tuer_auf = Output                              'Tür AUF

Motor_tuer_ab Alias Portc.2
Config Motor_tuer_ab = Output                               'Tür AB

'Timer0 konfigurieren (15,2587890625 Überläufe/sec)
Config Timer0 = Timer , Prescale = 256
On Timer0 On_timer0
Enable Timer0

'ADC konfiguration
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc


'Interrupts global einschalten
Enable Interrupts


'Hauptschleife
Do
   Debounce Taster_fenster_auf , 1 , Motor_fenster_auf_einschalten , Sub
   Debounce Taster_fenster_ab , 1 , Motor_fenster_ab_einschalten , Sub
   Debounce Taster_tuer_auf , 1 , Motor_tuer_auf_einschalten , Sub
   Debounce Taster_tuer_ab , 1 , Motor_tuer_ab_einschalten , Sub
   Debounce Taster_gesamt_auf , 1 , Gesamt_auf_einschalten , Sub
   Debounce Taster_gesamt_ab , 1 , Gesamt_ab_einschalten , Sub
   Debounce Taster_fenster_stop , 1 , Motor_fenster_stop , Sub
   Debounce Taster_tuer_stop , 1 , Motor_tuer_stop , Sub

   If Fenster_motor_counter = 0 Then
      Motor_fenster_auf = 0
      Motor_fenster_ab = 0
   End If
   If Tuer_motor_counter = 0 Then
      Motor_tuer_auf = 0
      Motor_tuer_ab = 0
   End If
   If Sonnen_sensor_counter = 0 And Rollo_status = 0 Then
      Gosub Messung_1
   End If
   If Sonnen_sensor_counter = 0 And Rollo_status = 1 Then
      Gosub Messung_2
   End If
Loop

End

'Timer0-Interrupt-Handler
On_timer0:
   If Tuer_motor_counter > 0 Then
      Decr Tuer_motor_counter
   End If
   If Fenster_motor_counter > 0 Then
      Decr Fenster_motor_counter
   End If
   If Sonnen_sensor_counter > 0 Then
      Decr Sonnen_sensor_counter
   End If
Return


'Motor einschalten
Motor_fenster_auf_einschalten:
   Motor_fenster_ab = 0
   Waitms 200
   Motor_fenster_auf = 1
   Fenster_motor_counter = 610                              ' ca. 40 sec.
Return

Motor_fenster_ab_einschalten:
   Motor_fenster_auf = 0
   Waitms 200
   Motor_fenster_ab = 1
   Fenster_motor_counter = 610                              ' ca. 40 sec.
Return

Motor_tuer_auf_einschalten:
   Motor_tuer_ab = 0
   Waitms 200
   Motor_tuer_auf = 1
   Tuer_motor_counter = 687                                 ' ca. 45 sec.
Return

Motor_tuer_ab_einschalten:
   Motor_tuer_auf = 0
   Waitms 200
   Motor_tuer_ab = 1
   Tuer_motor_counter = 610                                 ' ca. 40 sec.
Return

Gesamt_auf_einschalten:
   Motor_fenster_ab = 0
   Motor_tuer_ab = 0
   Waitms 200
   Motor_fenster_auf = 1
   Motor_tuer_auf = 1
   Tuer_motor_counter = 610
   Fenster_motor_counter = 610
   Sonnen_sensor_counter = 27468                            ' ca. 1800 sec.
   Rollo_status = 0
Return

Gesamt_ab_einschalten:
   Motor_fenster_auf = 0
   Motor_tuer_auf = 0
   Waitms 200
   Motor_fenster_ab = 1
   Motor_tuer_ab = 1
   Tuer_motor_counter = 687
   Fenster_motor_counter = 610                              ' ca. 40 sec.
Return

Motor_fenster_stop:                                         'Fenster STOP
   Motor_fenster_auf = 0
   Motor_fenster_ab = 0
Return

Motor_tuer_stop:                                            'Tür STOP
   Motor_tuer_auf = 0
   Motor_tuer_ab = 0
Return

'Sonnenautomatik ein
Messung_1:
   Lichtmittelwert = 0
   FOR m = 1 TO 3
   Lichtwert = Getadc(0)
   Lichtmittelwert = Lichtmittelwert + Lichtwert
   WAITMS 5
   NEXT m
   Lichtmittelwert = Lichtmittelwert / 3
   If Lichtmittelwert > 495 Then   
   Motor_fenster_auf = 0
   Motor_tuer_auf = 0
   Waitms 200
   Motor_fenster_ab = 1
   Motor_tuer_ab = 1
   Tuer_motor_counter = 427                                 'ca. 28 sec.
   Fenster_motor_counter = 336                              'ca. 22 sec.
   Sonnen_sensor_counter = 27468
   Rollo_status = 1
   End If
Return

Messung_2:
   Lichtmittelwert = 0
   FOR m = 1 TO 3
   Lichtwert = Getadc(0)
   Lichtmittelwert = Lichtmittelwert + Lichtwert
   WAITMS 5
   NEXT m
   Lichtmittelwert = Lichtmittelwert / 3
   If Lichtmittelwert < 470 Then
   Motor_fenster_ab = 0
   Motor_tuer_ab = 0
   Waitms 200
   Motor_fenster_auf = 1
   Motor_tuer_auf = 1
   Tuer_motor_counter = 687
   Fenster_motor_counter = 610
   Sonnen_sensor_counter = 27468
   Rollo_status = 0
   End If
Return


MfG
Nicola
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Juli94



Anmeldungsdatum: 15.07.2009
Beiträge: 2
Wohnort: Jüchen

BeitragVerfasst am: Mi 15.Jul 2009 17:35:05    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

Bin neu hier im forum, und hab mir schon deine tutorial zu Bascom durchgelsen! Und erstmal ein großes Lob, ist alles sehr leicht verständlich!!

aber eine Frage hab ich dennoch,
wenn man einen Eingang macht also:

led1 alias Pind.1
led1 = Input

Wieso muss man da oben denn dann Pinx.x hinschreiben, und nicht Portx.x??

Danke im Vorraus

Mfg Julian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Do 16.Jul 2009 06:58:45    Titel: Bauteile finden Antworten mit Zitat

Juli94 hat folgendes geschrieben:
led1 alias Pind.1
led1 = Input

Hallo Julian!

Habe ich den von dir gezeigten Code irgendwo geschrieben? Dieser ist jetzt zwar aus dem Zusammenhang gerissen, aber wahrscheinlich falsch.

Wenn du eine LED "schalten" möchtest, dann muss der Pin als Ausgang konfiguriert werden. Einen Ausgang sprichst du mit PORTx.x an und nicht mit PINx.x. Mit PINx.x kannst du nur herausfinden, ob am Pin eine Spannung anliegt, oder nicht.

Korrekt müsste der Code so aussehen:
Code:
LED1 ALIAS PORTD.1
CONFIG LED1 = OUTPUT

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Juli94



Anmeldungsdatum: 15.07.2009
Beiträge: 2
Wohnort: Jüchen

BeitragVerfasst am: Do 16.Jul 2009 10:55:14    Titel: Bauteile finden Antworten mit Zitat

Ouh sorry ich meinte statt led1 zum beispiel Taster1...also auf jeden fall einen Input! Okay also muss man einen Eingang immer mit Pinx.x konfigurieren? Weil Der Bascom Compiler macht halt kein error draus, is ein wenig verwirrend^^

Mfg Julian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tux77



Anmeldungsdatum: 23.05.2009
Beiträge: 14
Wohnort: Erding

BeitragVerfasst am: Sa 25.Jul 2009 18:00:12    Titel: Bauteile finden Antworten mit Zitat

Hallo,

da bin ich mal wieder und hab ein neues Problem. Embarassed
Ich habe einen Impulsgeber der mir pro gefahrenen Kilometer 2500 Impulse gibt, nun würde ich gerne einen kleinen Bordcomputer bauen der mir die Geschwindigkeit anzeigt und die Durchschnittsgeschwindikeit in einem bestimmten Zeitraum erechnet und auf Knopfdruck anzeigt.
Wie würdet Ihr sowas pragrammieren und wie bringe ich die Zeit mit ins Spiel? Question

MfG
Nicola
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: So 26.Jul 2009 13:03:53    Titel: Bauteile finden Antworten mit Zitat

Tux77 hat folgendes geschrieben:
pro gefahrenen Kilometer 2500 Impulse [...]
Geschwindigkeit [...] Durchschnittsgeschwindikeit

Hallo Nicola!

Du kannst mit dem Timer2, jede Sekunde einen Interrupt auslösen lassen. Der Timer1 kann die Impulse zählen, die in der Zwischenzeit rein gekommen sind.

Beim Timer2-Interrupt schreibst du die Impulsanzahl in eine Variable, die von der Hauptschleife ausgewertet werden kann. Gleich nach dem Übergeben der Variable, setzt du den Wert des Timer1 wieder auf 0 zurück.

In der Hauptschleife wertest du die Impulsanzahl/sec. aus. Idealerweise nimmst du den Mittelwert der letzten drei Messungen und gibst diesen dann auf dem LCD aus.

-----------------

Eine andere (vielleicht genauere) Möglichkeit wäre, die Dauer der Impulsabstände zu messen. Das scheint mir aber komplizierter.

-----------------

In diesem Beispiel, wird jede Sekunde die angeschlossene LED umgeschaltet:
Code:
$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100

Dim Oc2_counter As Word

Led1 Alias Portb.0
Config Led1 = Output

'TIMER2 so eingestellt dass nach exakt 10.000 Compare2-Interrupts (OC2) eine Sekunde vorbei ist
'16.000.000 / 8 / 200 = 10.000
Config Timer2 = Timer , Prescale = 8 , Clear Timer = 1
Compare2 = 200
On Oc2 On_oc2

Enable Oc2
Enable Interrupts


Do
   !nop
Loop

End


On_oc2:
   Incr Oc2_counter
   If Oc2_counter = 10000 Then
      Oc2_counter = 0
      Toggle Led1
   End If
Return

Ach ja, noch etwas: Du brauchst unbedingt einen Quarz für so etwas. Der interne RC-Oscillator ist viel zu ungenau für diese Aufgabe.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gunter



Anmeldungsdatum: 12.11.2006
Beiträge: 15

BeitragVerfasst am: Do 20.Aug 2009 20:10:20    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

durch eine Internetsuche zur Lösung meines Problems bin ich auf dieses Forum gestoßen.

Ich muß schon sagen: Alle Achtung!

Da ich völliger Neuling in Sachen µC und deren Programmierung bin, frage ich, ob Du mir bei der Lösung meines Problems helfen kannst?

Im Auszug hier eine Projektbeschreibung:

...in diesem Projekt soll ein Gerät entworfen werden, mit dem es möglich ist, das Ätzbad der Ätzanlage unserer Schule auf die Kupferkonzentration zu überprüfen und dies dem Benutzer auszugeben. Die Aufgabe ist, ein geeignetes Messverfahren zu suchen, dieses zu testen und die Auswertung soweit zu automatisieren, dass es durch einen einfachen Knopfdruck möglich ist, eine Messung durchzuführen. Die Messung erfolgt über eine einfache Lichtmessung. Bei der Messdurchführung, gibt der µC ein PWM – Signal aus, welches die Helligkeit der roten LED, der Sendeschaltung steuert. Die LED leuchtet durch eine Küvette, in der sich die zu testende Ätzflüssigkeit befindet. Genau gegenüber liegt eine Empfängerschaltung mit Photodiode, die das verbleibende Licht, auffängt und über einen Operationsverstärker einen Spannungswert dem µC zurückgibt. Dieser führt anschließend mit diesem Wert Berechnungen durch und gibt das Ergebnis entweder am Display aus oder speichert diesen Wert für weitere Dokumentationen. Zudem befindet sich noch eine RS 232 Schnittstelle am extra angefertigten Gehäuse die es erlaubt Daten auf den PC zu übertragen...

Hättest Du evtl. eine Lösung in Form eines Schaltplans und vielleicht auch ein Programm für mich? Die Fotometerschaltung ist vorhanden.

Vielen Dank für Deine Hilfe.

Gruß

Gunter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Do 20.Aug 2009 22:01:30    Titel: Bauteile finden Antworten mit Zitat

Hallo Gunter!
Gunter hat folgendes geschrieben:
Bei der Messdurchführung, gibt der µC ein PWM – Signal aus, welches die Helligkeit der roten LED, der Sendeschaltung steuert.

Damit kann ich nichts anfangen, da ich nicht weiß, warum du die LED nicht einfach für die Messung ein- und danach wieder ausschaltest.

Gunter hat folgendes geschrieben:
Hättest Du evtl. eine Lösung in Form eines Schaltplans und vielleicht auch ein Programm für mich? Die Fotometerschaltung ist vorhanden.


Damit kannst du die Spannung ermitteln, die an einem µC-Eingang angelegt wird:
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/adc_mit_getadc/

Und damit kannst du die Daten auf einem LCD ausgeben:
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/

Hier findest du Informationen darüber, wie du Daten vom µC zum Computer überträgst:
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_zum_computer/
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/max232_1zu1kabel/
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_vom_computer/
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_vom_computer_2/

Hier findest du noch Pläne und Bauanleitungen für die Stromversorgung, für einen Parallelport-Programmer und für die RS-232/TTL-Schnittstelle:
- http://halvar.at/elektronik/motorsteuerung_mit_attiny13/

Schaltplan musst du dir selber zeichnen. Aber im kleinen Kurs sind schon ein paar Schaltpläne drinnen, die du als Basis verwenden kannst. Und hier im Forum kannst du auch nachfragen, wenn du ein konkretes Problem hast.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gunter



Anmeldungsdatum: 12.11.2006
Beiträge: 15

BeitragVerfasst am: Fr 21.Aug 2009 14:16:52    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

vielen Dank für Deine schnelle Antwort.

Nach dem ersten Betrachten dessen was Du mir zugesandt hast, war ich richtig erschrocken. Ich hatte mir die ganze Geschichte doch etwas einfacher vorgestellt. Prinzipiell übersteigt das alles was ich mir bisher an Elektronikwissen selbst beigebracht habe.

Aus diesem Grund muss ich wohl zuerst mal Deinen Lehrgang – der wirklich sehr gut gestaltet ist – durcharbeiten und mir auf dem Steckboard einige Beispiele ansehen.

Welches von den Programmen, die Du ansprichst, ist für einen Laien am einfachsten nachzuvollziehen?
Gibt es im Internet eine Sammlung von fertigen Programmen, welche man sich für seine Projekte umarbeiten kann?

Wenn ich weitere Fragen zu Deinem Lehrgang habe, werde ich mich vertrauensvoll an Dich wenden.

Bis dahin viele Grüße aus Herne.

Gunter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gunter



Anmeldungsdatum: 12.11.2006
Beiträge: 15

BeitragVerfasst am: Do 08.Okt 2009 18:42:37    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

inzwischen hatte ich genug Zeit um mich mit dem ATmega8 und seiner Umgebung vertraut zu machen. Kleinere Schaltungen (auf Breadboard) funktionieren einwandfrei. Messungen mit einem LDR (als Fotometerersatz) funktionieren ebenfalls – das Hyperterminal zeigt mir je nach Lichteinfall die entsprechende Spannung an.

Nun zu meinen Fragen:

1.
Bestimmung des Blindwertes To:
Ich drücke z.B. einen Taster. Der Messwert erscheint auf dem LCD und wird gespeichert.
Das ist der Blind- oder Leerwert.

2.
Bestimmung der 1. Konzentration T:
Beim nächsten Tastendruck soll der Messwert der 1. Konzentration verarbeitet werden

T = Blindwert / Messwert 1. Konzentration

und weiter umgerechnet:

E = - log To /T

3.
Erstellen einer Eichkurve:
Prinzipiell soll das Programm noch in eine Eichkurve eingelesen werden, welche mir dann die ermittelte Konzentration bei einem 3. Tastendruck ausgibt.

Bei käuflichen Fotometern ist ein solches Verfahren üblich.

Kann man so etwas auch mit unserem ATmega8 zustande bringen – und hättest Du evtl. Ansätze für ein solches Programm?

4.
An welche PIN käme dann der Taster?

Ich hoffe ich überstrapaziere Dich nicht.

Gruß

Gunter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Di 13.Okt 2009 15:23:19    Titel: Bauteile finden Antworten mit Zitat

Hallo Gunter!

Ich hoffe, dass dir jemand bei deinem Problem helfen kann. Ich kann es nicht. Leider habe ich schon seit Monaten keine Zeit mehr für mein Hobby.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gunter



Anmeldungsdatum: 12.11.2006
Beiträge: 15

BeitragVerfasst am: Di 13.Okt 2009 15:48:52    Titel: Bauteile finden Antworten mit Zitat

Hallo Gerold,

danke für Deine Antwort.

Ich hoffe, dass Du in naher Zukunft wieder etwas mehr Zeit für Dein Hobby findest.

Somit wende ich mich nun an alle die mir helfen wollen und die nötige Zeit dafür aufbringen können.

Gruß

Gunter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anzeige






Verfasst am: Heute 17:01:13    Titel: Bauteile finden

Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Microcontroller und DSP Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3 ... , 18, 19, 20  Weiter
Seite 19 von 20

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen


Powered by phpBB 2.x © 2001, 2002 phpBB Group

Sie sind Besucher Nr. 1199843
©opyright by Markus Vohburger 2005 All Rights reserved