Forum: Mikrocontroller und Digitale Elektronik 0-10v in pwm


von Alex (Gast)


Lesenswert?

Guten Abend,
Ich hab leider nur sehr wenig Erfahrung mit µC.
Ich möchte einige LEDs mit 0-10v steuern.
Also muss ich ja die 0-10v in PWM umwandeln.
Also so was in der Art.
http://www.ebay.de/itm/LED-Digital-PWM-Dimmer-8-28-V-8A-Taster-oder-0-10-Volt-Steuerung-/131102622542?pt=DE_M%C3%B6bel_Wohnen_Lampen_Lichtzubeh%C3%B6r&hash=item1e8653434e

Von diesen Wandlern bräucht ich so ca 18 Stück.
Deswegen dachte ich, ich Versuch es einfach mal selber herzustellen.
Die 0-10v kommen aus LCN BUS Modulen.

Meine Frage jetzt ob jemand nen Schaltplan hätte mit dem Dazugehörigren 
Programm.
Oder mir helfen kann, wo ich so einen finden kann.
Oder mir helfen kann so ein herzustellen.

Danke im Voraus

MFG Alex

von Max H. (hartl192)


Lesenswert?

Beitrag "0-10v in Pwm umsetzen für Konstantstromquelle"
Ich würde es mit einem PIC12F1501 lösen.
Die 10V über einen Spannungsteiler an einen ADC-Eingang und dann mit dem 
PWM Modul ausgeben...
Einer dieser PICs könnte dann 2 Signale umwandeln.

: Bearbeitet durch User
von hinz (Gast)


Lesenswert?


von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich schlag mal wieder den Klassiker vor: Ein Dreieck- oder 
Sägezahngenerator mit 0-10V Ausgangsswing geht auf den invertierenden 
Eingang von 18 Komparatoren, z.B. dem LM339. An die positiven Inputs 
kommen die 0-10V aus dem Steuergerät, am Ausgang jedes Komparators liegt 
die gewünschte PWM für den Kanal.

von Max H. (hartl192)


Lesenswert?

Matthias Sch. schrieb:
> Ich schlag mal wieder den Klassiker vor: Ein Dreieck- oder
> Sägezahngenerator mit 0-10V Ausgangsswing geht auf den invertierenden

Beitrag "Re: 0-10v in Pwm umsetzen für Konstantstromquelle"

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Max H. schrieb:
> Matthias Sch. schrieb:
>> Ich schlag mal wieder den Klassiker vor: Ein Dreieck- oder
>> Sägezahngenerator mit 0-10V Ausgangsswing geht auf den invertierenden
>
> Beitrag "Re: 0-10v in Pwm umsetzen für Konstantstromquelle"

Ja, genau. Auch in diesem Thread habe (2 Posts weiter oben) genau das 
vorgeschlagen. Allerdings würde ich das alles direkt von 10-12V speisen, 
damit spart man sich jegliche Pegelanpassung etc.
Den TS914 finde ich unnötig exotisch, der LM339 hat auch gleich 4 
Komparatoren in einem Gehäuse. Mit 5 dieser Dingerchen sind also alle 18 
Kanäle erschlagen.

von Alex (Gast)


Lesenswert?

Guten Abend,
ich bins wieder.
Hatte in der Woche leider wenig Zeit, hab es aber am Wochenende 
geschafft.
Hab bei mir ein Mega8 gefunden und den Code draufgespielt.
Die 0-10v über ein Spanungsteiler an Pin PC0 und ein FET an PB1.
LEDs dran und hab gestaunt;).
Es funktioniert.
Hätte aber noch einige Bitten.
Also bei 0v leuchten die LEDs gedimmt weiter.
Kann man was machen, damit die bei 0v ganz aus sind.

Ich möchte pro 0-10v ein kleines Modul bauen das Modul soll neben den 
Trafo in die Lampen. Deswegen brauch ich nur ein Kanal pro MC.
Welcher MC ist empfehlenswert?
Max H hat den PIC12F1501 vorgeschlagen oder kann ich diesen nehmen:
http://www.reichelt.de/PIC-12-Controller/PIC-10LF320-IP/3/index.html?&ACTION=3&LA=2&ARTICLE=121703&GROUPID=2966&artnr=PIC+10LF320-IP
Der wär halt um einiges günstiger.
Kann ich den mit AVR Evaluation Board von Pollin programmieren.
Passt der Code so oder muss er geändert werden, wenn ja könnt ihr mir 
helfen beim ändern.
1
#define    PC1          1
2
#define    PC0          0
3
#include <avr/io.h>
4
#include <stdio.h>
5
6
unsigned char adc_read8(char channel);
7
8
int main(void)
9
{
10
11
  //PC4,5 output
12
  DDRB = (1<<DDB1) | (1<<DDB2);
13
14
15
  //TIMER 1
16
  ICR1 = 255;
17
  TCCR1A = (1<<COM1A1) | (1<<COM1B1) | (1<< WGM11);   //Fast PWM, TOP = ICR1, Clear on Compare Match
18
  TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS11) | (1<<CS10);  //Prescaler 64  //Fast PWM, Prescaler 256
19
  
20
21
  //ADC
22
  ADMUX = (1<<REFS0) | (1<<ADLAR);                    //VRef = AVCC
23
  ADCSRA = (1<<ADPS2) | (1<<ADPS1) | (1<<ADEN);       // 125 kHz @ 8 Mhz, ADC enabled
24
  ADCSRA |= (1<<ADSC);
25
  while (ADCSRA & (1<<ADSC));
26
27
  unsigned int i = 0;
28
  while(1)
29
  {
30
    if (~i)
31
    {
32
      OCR1A = adc_read8(PC0);
33
      OCR1B = adc_read8(PC1);;
34
35
    }
36
    i++;
37
  }
38
}
39
40
unsigned char adc_read8(char channel)
41
{
42
  ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
43
  ADCSRA |= (1<<ADSC);
44
  while (ADCSRA & (1<<ADSC));
45
  return ADCH;
46
}

Danke im Voraus

von Max H. (hartl192)


Lesenswert?

Alex schrieb:
> Max H hat den PIC12F1501 vorgeschlagen oder kann ich diesen nehmen:
> 
http://www.reichelt.de/PIC-12-Controller/PIC-10LF320-IP/3/index.html?&ACTION=3&LA=2&ARTICLE=121703&GROUPID=2966&artnr=PIC+10LF320-IP
Ja, wäre eine auch eine Möglichkeit. Mit dem 12F1501 könntest du 2 
Signale in PWM umwandeln, mit dem 10F320 nur eines.

Alex schrieb:
> Kann ich den mit AVR Evaluation Board von Pollin programmieren.
Ich kenne das AVR Evaluation Board nicht, aber es wir mit an Sicherheit 
grenzender Wahrscheinlichkeit nicht gehen. Und das Programm müsstest du 
auf ändern, da PIC und ATmega zwei verschiedene Paar Schuhe sind.

: Bearbeitet durch User
von Alex (Gast)


Lesenswert?

OK wie wäre es mit dem ATTINY 45?

Der sollte in mein Programmierboard passen.

Kann mir jemand vil. den Code für diesen mc umschreiben.

Danke im Voraus.

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.