INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Neuling PWM Programmierung
20.12.2014, 22:24
Beitrag #1
Neuling PWM Programmierung
Hallo
Ich bin neu hier und bitte gleich um etwas mithilfe.
Bin in einem Besitz von einem Arduino Nano v3.
Kleine Schaltungen habe ich versuchsweise umgesetzt.
Ich möchte ein M150 Puls Converter von Kemo ansteuern über PWM.

Mit zwei Taster 5 Leistungsstufen durchschalten.
Taster 1 up / Taster 2 Down
Das vom Arduino generierte PWM Signals sollte dann einen M150 DC + Puls Converter von Kemo ansteuert.

Welcher unterschied ist zwischen Rc Servo PWM und einem vom mir
benötigten 1 - 10khz?

Gruß Gerald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.12.2014, 23:46
Beitrag #2
RE: Neuling PWM Programmierung
(20.12.2014 22:24)Gerald_Z schrieb:  Hallo
Ich bin neu hier und bitte gleich um etwas mithilfe.
Bin in einem Besitz von einem Arduino Nano v3.
Kleine Schaltungen habe ich versuchsweise umgesetzt.
Ich möchte ein M150 Puls Converter von Kemo ansteuern über PWM.

Mit zwei Taster 5 Leistungsstufen durchschalten.
Taster 1 up / Taster 2 Down
Das vom Arduino generierte PWM Signals sollte dann einen M150 DC + Puls Converter von Kemo ansteuert.

Welcher unterschied ist zwischen Rc Servo PWM und einem vom mir
benötigten 1 - 10khz?

Gruß Gerald

Hallo Neuer...,
also ein RC Servoimpuls ist 1,0 bis 2,0 mS lang und wird alle 20mS wiederholt. Bei der PWM wo du benötigst wird bei 1 KHz alle 1 mS ein Impuls mit variabler Breite generiert und zwar laut deiner Kemo Spec mit einer Breite von 100uS bis 900uS .
Beim UNO wirst du da an den Pin's 5 + 6 eine PWM mit 980 Hz vorfinden, siehe Link. Auf die paar Herz Unterschied wird es dem Kemo Teil hoffentlich nicht ankommen...
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2014, 16:15
Beitrag #3
RE: Neuling PWM Programmierung
Danke
Ich hab jetzt etwas herum probiert und etwas gebastelt.


// Belegung
void setup()
{
pinMode(9, OUTPUT); //PWM Signal Pin 9
}

//Programm beginn

void loop()
{

delay(100); //Zeitverzögerung
analogWrite(9, 200); //PWM Methode, Pin 9,
delay(100); //Zeitverzögerung


}

Das mit dem PWN Signal sollte so passen. Die Led kann ich in der Hellickeit verändern.
Aber mir gelingt es nicht die Led über die bereits angeschlossenen Schalter zu steuern.
up/down Schalter.

Gruß Gerald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2014, 18:02
Beitrag #4
RE: Neuling PWM Programmierung
Taster 1 = Pin D2 // ( versorgt über 5V und mit einem pull Down Widerstand 12kOhm an GND)
Taster 2 = Pin D3 // (ebenfalls versorgt über 5V und mit einem pull Down Widerstand 12kOhm an GND)

Led = Pin D9 // angeschlossen

Ich hab ein sketch geschrieben wo man über den Serial Monitor 0/1 die Schalterstellung sieht.
Die Led habe ich auch gleich integriert. Das hat schon funktioniert. :-)
Die Basics habe ich alle durch und auch einige andere mittels youtube.

Ich hab auch schon nach ähnlichen Beispielen gesucht aber leider nichts gefunden.
Jetzt fehlt mir gerade die Idee wie ich das mit dem Ablauf hinbekommen soll. Up/Down Taster in 5 Stufen Schaltbar machen?

Lg Gerald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.12.2014, 11:36
Beitrag #5
RE: Neuling PWM Programmierung
Bin schon etwas weiter gekommen. :-)
Ich hab bis jetzt zwei schleifen in meinem Sketch die ich mit zwei Tastern Schalten kann.
Jedoch scheitere ich gerade daran mit einem Taster hoch zu schalten und mit dem zweiten wieder runter. up/down?

Das Problem mit je einem Tastendruck in die nächste schleife zu springen??
Ich hoffe ihr könnt mir da einen kleinen Tipp geben.

Mein Sketch sieht gerade so aus.



//Taster 1 = Stufe 1
//Taster 2 = Stufe 2

#include <OneButton.h>

int LedPin = 9;
int buttonPin1 = 2;
int buttonPin2 = A0;

OneButton button1 = OneButton(buttonPin1, false);
OneButton button2 = OneButton(buttonPin2, true);

void setup()
{
Serial.begin(9600);
while(!Serial);
pinMode (LedPin,OUTPUT);
Serial.println("Programm start ");


button1.attachClick(up);
button2.attachClick(down);

}
void loop()
{
button1.tick(); //Prellzeit für Taster
button2.tick(); //Prellzeit für Taster

delay(10);
}

void up()
{
Serial.println("up");
analogWrite(LedPin, 50);
}

void down()
{
Serial.println("down");
analogWrite(LedPin, 200);
}


Gruß Gerald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2014, 16:42
Beitrag #6
RE: Neuling PWM Programmierung
Ich würde mich um etwas Unterstützung freuen. ;-)

Meinem Programm müsste doch so funktionieren? Wenn der UP Taster gedrückt wird läuft die Schleife 1 mal durch.
void up()
{
Serial.println("up");
analogWrite(LedPin, (upp));
delay (300);
}

und erhöht den Wert analogWrite,... um 10
Je Tastendruck steigt der Wert um 10

Aber irgentwo hab ich da einen Hund drin. Weil funktionieren tuts leider nicht.




#include <OneButton.h>

int downn = -10;
int upp = 10;
int LedPin = 9;
int buttonPin1 = 2;
int buttonPin2 = A0;

OneButton button1 = OneButton(buttonPin1, false);
OneButton button2 = OneButton(buttonPin2, true);

void setup()
{
Serial.begin(9600);
while(!Serial);
pinMode (LedPin,OUTPUT);
Serial.println("Programm start ");


button1.attachClick(up);
button2.attachClick(down);

}
void loop()
{
button1.tick(); //Prellzeit für Taster
button2.tick(); //Prellzeit für Taster
delay(10);
}


void up()
{
Serial.println("up");
analogWrite(LedPin, (upp));
delay (300);

}


void down()
{
Serial.println("down");
analogWrite(LedPin, (downn));
delay (300);

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.02.2016, 22:23 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2016 22:31 von reiner_liebold.)
Beitrag #7
RE: Neuling PWM Programmierung
Hallo Gerald,

ich vemute Du hast mittlerweile eine Lösung gefunden, ich habe Deinen Beitrag heute erst zufällig gefunden, weil ich nach Lösungen für das KEMO M150 Modul gesucht habe.

Ich hatte mich ein bisschen gewundert das keiner eine Idee dazu beigetragen hat?

Ich hätte Dein Problem eventuell ähnlich dem folgendem Beisiel gelöst, nachfolgend ein Lösungsansatz.

Dabei wird über den Taster bei jedem Tatsendruck 55 zum Dimmwert hinzugerechnet, wenn 255 erreicht ist, dann wird der Startwert von 5 gesetzt.
So lassen sich die 5 Werte einfach nacheinander durchschalten und auswählen.
Die grüne LED zeigt den Dimmwert an, die rote LED bestätigt jeden Tastendruck, wechselt dabei jeweils den Zustand.

Im Bild die Testbeschaltung:
[Bild: CIMG7347.JPG]

und der zugehörige Code:
Code:
/*
Set PWM Wert über Button wählbar
Author: R.Liebold
*/

int ledPin = 6;    // LED connected to digital pin 6
int Pin_LEDButtonStatus = 4;    // Schaltausgang mit LED für Schaltzustand Taster  - LED Rot

// Schalter für mauelles Schalten initialisieren und benötigte Variablen setzen
int ButtonOn = 3;                  // Button ON, für unabhängiges Ein/Aus-Schalten
const int debounceDelay = 10;      // Wartezeit für Taster entprellen in Millisekunden
int ButtonState, ButtonStateOld;   // Button Zustand merken
int DimmWert = 5;


//**************** debounce returns the state when the switch is stable ************
boolean debounce(int pin)
{
  boolean state;
  boolean previousState;

  previousState = digitalRead(pin);          // store switch state
  for(int counter=0; counter < debounceDelay; counter++)
  {
      delay(1);                  // wait for 1 millisecond
      state = digitalRead(pin);  // read the pin
      if( state != previousState)
      {  
         counter = 0; // reset the counter if the state changes      
         previousState = state;  // and save the current state
      }
  }
  // here when the switch state has been stable longer than the debounce period
  return state;
}

//**************** SETUP *************************************************************
void setup() {
  pinMode(ButtonOn, INPUT);          // Button für Ein/Aus Schalten initialisieren
  
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  Serial.println("hello!");
  
  // Taster wird jetzt über Interrupt abgeprüft - muss an Pin3 angeschlossen sein
  attachInterrupt(1, ReadButton, CHANGE); // encoder pin on interrupt 1 (pin 3)
}

//**************** Interrupt abfragen *************************************************************
void ReadButton()
{
  if (debounce(ButtonOn)){
    ButtonState = debounce(ButtonOn);
    if ((ButtonStateOld == 0) && (ButtonState == 1)){
      // wenn der alte Zustand AUS war dann LightOn 1 setzen und den Aktuellen Zusand auf den Alten setzen
      ButtonStateOld = ButtonState;  // ButtonStateOld = 1
    }
    else{
      // wenn der alte Zustand AN war dann LightOn 0 setzen und den Alten Zustand audf 0
      ButtonStateOld = 0;
      ButtonState = 0;
    }
    // hier wird der DimmWert erhöht, immer um 50, wenn er Größer als 255 ist wir er auf 5 zurückgesetzt ####
    DimmWert = DimmWert + 50;
    if (DimmWert > 255){
      DimmWert = 5;
    }
    Serial.println("Button Press - DimmWert: " + String(DimmWert));
    Serial.println("Status Button: " + String(ButtonState));
    digitalWrite(Pin_LEDButtonStatus, ButtonState);
    analogWrite(ledPin, DimmWert);
  }
}

void loop() {
  //den über Taster gewählten Wert setzen ####
  //analogWrite(ledPin, DimmWert);
  // wait for 200 milliseconds to see the dimming effect
  //delay(200);
}

Eventuell kannst Du ja mal posten wie Du dein Problem gelöst hast.
Gruß Reiner
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Slider Steuerung, Programmierung blueblack 21 613 16.10.2016 22:31
Letzter Beitrag: blueblack
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 348 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 285 27.08.2016 18:23
Letzter Beitrag: Binatone
Wink Bin Neuling Guekard 62 3.224 12.06.2016 19:01
Letzter Beitrag: hotsystems
  Programmierung für Projektarbeit (Spektrometer) ProVeN 4 1.269 02.11.2015 12:18
Letzter Beitrag: ProVeN
  Drehzahl Anzeige Analog (neuling) Kuxii 9 1.112 30.10.2015 12:01
Letzter Beitrag: hotsystems
  Hilfe bei Programmierung ANFÄNGER Icemann_2 14 2.022 23.10.2015 15:51
Letzter Beitrag: Binatone
  Brauche hilfe bei Nachkommastelle Programmierung GaLeMa00 4 662 21.10.2015 15:55
Letzter Beitrag: GaLeMa00
  Neuling braucht Hilfe für Timelapse Sketch Uwe1475 19 2.080 30.09.2015 23:11
Letzter Beitrag: Uwe1475
  Temperatursensor Programmierung Anton11 6 1.553 29.05.2015 09:55
Letzter Beitrag: fraju

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste