• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
generator częstotliwości + arduino UNO
#1
Witam wszystkich.

Proszę o pomoc w napisaniu programu do arduino. 
Jestem poczatkującym i po zastosowaniu prostych komend jezyka c  nie jestem w stanie osiągnąć tego co potrzebuję. 
Posiadam generator UDB1005s który ma mozliwość generowania impulsów kwadratowych 0 +3,2v; o płynnej regulacji częstotliwości 0.01 Hz-5MHz i wypełnienia co 1%.
Chciałbym uzależnić sterowanie wyjściami PWM arduino od impulsów generatora a nastepnie sterować dwa lub więcej IRF3710 przez arduino. Myślę że częstotliwości 10Hz -35kHz nie powinno sprawić problemu dla Arduino.

Po podaniu napiecia przez generator na zdefinowane dowolne wejście cyfrowe(lub inne- nie ma potrzeby pomiaru napięcia- tylko stan 0 gdy<2,5v lub 1>2,5v) załączyc jedno z wyjść PWN(powiecmy wyjście nr3) i wyłączyć je po wygasnięciu impulsu kwadratowego generatora; następnie kolejny impuls generatora miałby załączyć kolejne wyjście PWN(np nr 6) i wyłączyć je po wygasnięciu sygnału; następny impuls sterowałby pierwsze PWN(3) i tak w pętli. 
Na początek wystarczyłyby dwa wyjścia załączane naprzemian; jednak bardzo ważne dla mnie jest by sterowanie IRF-ami(wyjśie sygnałów z PWN) odzwieciedlało częstotliwość i wypełnienie zadane przez generator.

Z góry dziękuję za pomoc.

Radek Smile
 
Odpowiedź
#2
        W tej chwili tylko tyle potrafię:
=============================================================
Kod:
void setup() {
pinMode(13, OUTPUT);//Wyłączenie diody na pin 13
digitalWrite(13, LOW);//Wyłączenie diody na pin 13
pinMode(6, OUTPUT);//Wyjście na pin 6
digitalWrite(6, LOW);
pinMode(3, OUTPUT);//Wyjście na pin 6
digitalWrite(3, LOW);
pinMode(2, INPUT);//Wejście na pin 2
}

// the loop routine runs over and over again forever:
void loop() {

int sensorValue = digitalRead(2);//zmienna + odczyt stanu z pin2
  if (sensorValue > LOW) //Jeśli większy od 2,5v to jest
  digitalWrite(6, HIGH); //Włączenie pin 6
  delay(1);
  digitalWrite(6, LOW);//WyLączenie pin 6
}
==================================================================

Jak przełączyć na pin 3 przy następnym impulsie nie mam pojęcia.

Doszedł jeszcze problem z dziwnym dzieleniem impulsu na mniejsze i nie radeniu sobie z przełanczaniem z mniejszym wypełnieniem lub większj częstotliwości.


Przy pomiarze napięcia przy analogowym wejściu zachowywał się dokładnie tak samo.

Niebieski to przebieg z arduino.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości