Hallo Community, ich bin Anfänger was Programmieren angeht und wollte euch um Hilfe bitten. Mein Problem ist, ich möchte mit dem Arduino Board MEGA 2560 R3, ein Tyristor über eine PWM als Schalter betreiben. Die Anforderung an das Board ist, ein Rechtecksignal mit einer Frequenz von 2 MHz zu erzeugen und einem duty cycle von 1%. Also mit anderen Worten, ich brauche ein Signal welches bei 500ns, nur 5ns ein HIGH-Signal liefert. Kann mir einer sagen, wie ich es realiesieren kann? Gruß Alex
>Also mit anderen Worten, ich brauche ein >Signal welches bei 500ns, nur 5ns ein HIGH-Signal liefert. Kann mir >einer sagen, wie ich es realiesieren kann? Mit einem ATMega2560 kannst du sowas nicht erzeugen. Bei 16MHz ist ein CPU Cycle schon 62.5ns lang. Nimm einen FPGA.
Hi
Was willst du mit dem Thyristor schalten?
>ich brauche ein Signal welches bei 500ns, nur 5ns ein HIGH-Signal liefert.
Mit welcher Taktfrequenz läuft dein Arduino gleich noch mal?
MfG Spess
>Also mit anderen Worten, ich brauche ein >Signal welches bei 500ns, nur 5ns ein HIGH-Signal liefert. Für welche schwachsinnige Anwendung du auch immer das brauchst, ich glaube nicht das es einen Thyristor gibt der so schnell schalten kann.
Hallo Holger, danke für die schnelle Antwort. Wäre es möglich, dass du mir kurz erläuterst, wie es mit einem FPGA funktioniert? Wenn es dir keine Umstände bereitet.
Hallo Spess53 Zu Messzwecken wird eine LED über dem Tyristor geschaltet. Die Taktfrequenz der CPU ist 16MHz MfG Alex
Hi >Zu Messzwecken wird eine LED über dem Tyristor geschaltet. >Die Taktfrequenz der CPU ist 16MHz Mal von den anderen Einwenden abgesehen: Du kannst bei Gleichstrom einen Thyristor nur ein- aber nicht ausschalten. MfG Spess
Alex_K schrieb: > Die Taktfrequenz der CPU ist 16MHz Das ist um den Faktor 12.5 zu wenig. Du braust eine CPU mit 200MHz
Max H. schrieb: > Das ist um den Faktor 12.5 zu wenig. Du braust eine CPU mit 200MHz Die dann auch entsprechend schnell an den Pins wackeln kann.
@Alex_K: Sag mal was du genau vorhast eine LED mit 1% zu Betreiben dürfte wohl kaum sichtbar und daher nutzlos sein. Einziger einsatzzweck der mit einfällt IR-LED die mit einem sehr starken kurzem Impuls betrieben wird.
Thomas O. schrieb: > Sag mal was du genau vorhast eine LED mit 1% zu Betreiben > dürfte wohl kaum sichtbar und daher nutzlos sein. Einziger einsatzzweck > der mit einfällt IR-LED die mit einem sehr starken kurzem Impuls > betrieben wird. In Prinzip hast du es schon fast erraten, es handelt sich dabei nur um ein UV-LED diese kann man gepulst mit einem Strom von 200 mA betreiben, aber nur unter der Bestimmung mit einer Periode von 500ns und einem duty cycle von 1%. Brauche daher einen Aufbau zur Intensitätsmessung, welcher mir dieses PWM-Signal liefern kann. Wenn du eine Idee hast, wie ich sowas am Besten verwirklichen kann, wäre es wirklich hilfreich. Gruß Alex
häng mal bitte das Datenblatt an. Ich vermute fürs Belichten wirst du keinerlei Vorteile dadurch haben da sich das ja alles mittelt. Sowas macht man bei einer IR-LED um die Reichweite zu steigern.
Vllt. kann man das Ganze mit ein paat Schnellen Logik ICs und einem 200 MHz Oszillator bauen...
:
Bearbeitet durch User
> häng mal bitte das Datenblatt an
So habe das Datenblatt drangehangen. Auf der Seite vier ist ein Diagramm
zu finden, welches ich mehr oder weniger nachmessen will.
Wieder zurück zum Anfang: Die maximale ImpulsBREITE ist 500ns,da darft so einen 500ns Impuls mit DutyCyle 1% ausgeben (Periode 50µs). Das ist mit einem 16MHz µC möglich.
> Vllt. kann man das Ganze mit ein paat Schnellen Logik ICs und einem 200 > MHz Oszillator bauen... Bin für alle Möglichkeiten bereit, muss nur die Voraussetzung erfühlen und ein sauberes Rechteckimpuls hinbekommen, um genau Messungen hinzubekommen.
> Wieder zurück zum Anfang: Die maximale ImpulsBREITE ist 500ns,da darft > so einen 500ns Impuls mit DutyCyle 1% ausgeben (Periode 50µs). > Das ist mit einem 16MHz µC möglich. Aber ist die Impulsbreite 500ns nicht auch meine Periode? T=1/f oder verstehe ich da was falsch
Alex_K schrieb: > oder verstehe ich da was falsch Ja Nicht ein Meisterwerk in Paint, aber es sollte alles gut erklären.
:
Bearbeitet durch User
> Die Impulsbreite (maximum pulse width 500nSec) bleibt 500ns auch wenn > du das Datenblatt noch Einmal abhängst. Und mit Dutycycle 1% Darfst du > dein 500ns Impuls max. alle 50µs ausgeben. Ich habe es so verstanden, dass ich eine Peridode von 500ns habe und das ich dann nur ein Impuls von 5ns mit HIGH-Signal habe. Verstehe ich es jetzt richtig, dass das duty cycle 1% meine 500ns sind und ich dann eine Periode von 50us habe?
Alex_K schrieb: > Ich habe es so verstanden, dass ich eine Peridode von 500ns Die schreiben nicht zum Spaß "pulse width" (Impulsbreite) im Datenblatt. Alex_K schrieb: > Verstehe ich es > jetzt richtig, dass das duty cycle 1% meine 500ns sind und ich dann eine > Periode von 50us habe? Dutycycle=Impulsbreite/Periode ==>Periode=Impulsbreite/Dutycycle = 0.5µs/0.01=50µs
:
Bearbeitet durch User
> Dutycycle=Impulsbreite/Periode > > ==>Periode=Impulsbreite/Dutycycle = 0.5µs/0.01=50µs Da habe ich es wohl falsch verstanden gehabt, dachte das die Impuslbreite gleich meine Periode ist und ich davon ein HIGH-Signal von 1% generiere. Ok danke mein Fehler gewesen. Das bedeutet das ich mit meinem Arduino Board nur eine Periode von 20kHz generieren muss.
Alex_K schrieb: > Das bedeutet das ich mit > meinem Arduino Board nur eine Periode von 20kHz generieren muss Richtig.
Alex_K schrieb: > Da habe ich es wohl falsch verstanden gehabt, dachte das die > Impuslbreite gleich meine Periode ist Was bitte ist an 'Pulsbreite' nicht zu verstehen? Die Breite eines Pulses, vulgo Pulsbreite. Ist doch von Sprachgebrauch her ziemlich eindeutig. Was ist bei ...
1 | +-------------+ |
2 | | | |
3 | | | | |
4 | --+ +-----------------------+ |
5 | |
6 | <--- a -----> |
7 | <----------------- b ---------------> |
... der Puls? Ist das der Abschnitt a oder der Abschnitt b? Was ist daher die Breite eines Pulses? Ist das die Zeitdauer von a oder die Zeitdauer von b?
:
Bearbeitet durch User
> Richtig.
Ich danke dir vielmals!!!
Muss jetzt nur gucken wie ich das Programm mit dieser PWM hinbekomme.
Gruß
Alex
> Was ist daher die Breite eines Pulses? Ist das die Zeitdauer von a oder > die Zeitdauer von b? Da hatte ich einen falschen Gedanken gehabt.
Karl Heinz schrieb: > ... der Puls? Ist das der Abschnitt a oder der Abschnitt b? Generation Arduino?
Max H. schrieb: > Karl Heinz schrieb: >> ... der Puls? Ist das der Abschnitt a oder der Abschnitt b? > Generation Arduino? Immerhin kann er Prozentrechnung. Ist ja auch nicht selbstverständlich heutzutage. Und ich denk mir schon die ganze Zeit: Wozu braucht man (in unserem Metier) 5ns lange Pulse? Das ist immerhin so kurz, dass ein Lichtstrahl nur noch 1.5m lang ist. Und das soll dann auch noch möglichst exakt sein. Da haben wir noch gar nicht darüber gesprochen, wie man bei dem Tempo die 100mA überhaupt schaltet, denn da muss der Schalter schon deutlich schneller sein, damit überhaupt ein annähernder Rechteckpuls rauskommt und nicht irgendwas Flankenverschliffenes. Da muss man seine Kapazitäten schon unter Kontrolle haben.
:
Bearbeitet durch User
Karl Heinz schrieb: > Immerhin kann er Prozentrechnung. Ist ja auch nicht selbstverständlich > heutzutage. Immerhin gibt es Menschen die Anstand haben. Ist ja auch nicht selbsverständlich heutzutage.
Alex_K schrieb: >> Richtig. > > Ich danke dir vielmals!!! > Muss jetzt nur gucken wie ich das Programm mit dieser PWM hinbekomme. Das war ein Mega2560, richtig? Bei 16Mhz, ist ein Taktzyklus (1/16Mhz) genau 62.5ns oder 0.0625µs lang. Um auf 0.5µs (=500ns) zu kommen, braucht man also 500/62.5 = 8 Taktzyklen. Das ist die Pulsbreite. Die 50µs sind dann, ausgedrückt in Taktzyklen, 50/0.0625 = 800 Taktzyklen Ergo: zb Timer 1 Modus: Fast PWM mit einstellbarer Obergrenze. Da würde ich den Modus 14 nehmen (siehe Tabelle auf Seite 148 im Datenblatt). Der Top Wert steht dann in ICR1 und ist 799 Prescaler auf 1 Die Pulsbreite wird zb in OCR1A eingestellt auf 8 Noch die COM Bits so eingestellt, dass die durch OCR1A erzeugte PWM nicht invertiert am zugehörigen OC1A Pin ausgegeben wird. Und dann sollte das soweit schon laufen.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.