Arduino PWM, hur löser jag detta?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
ludde_018
Inlägg: 50
Blev medlem: 27 juni 2011, 20:41:09

Arduino PWM, hur löser jag detta?

Inlägg av ludde_018 »

Hej!

Har nu ägnat 2 dagar åt att lösa problemet med google och youtube till hjälp. Kanske säger lite om nivån på min kunskap, men frågar nu expertisen här om hjälp

Det jag vill upp nå är en softstart/fade på en pwm utgång. Det har jag lyckats med och det finns massor av exempel.

Men hur jag än försöker så får jag inte till följande:

*Jag vill kunna starta pwm "fade" under en "if" förutsättning (exempel när två ingångar är höga)

*Om förutsättningen inte längre är sann så ska pwm signalen till 0 (ena eller båda signalerna blir låga)

*Kommer pwm signalen upp till full styrka så ska den stanna så tills förutsättningen inte längre är sann.

På alla exempel jag fått fram så stannar man på full styrka genom ett delay och då pausar man väl hela koden och processorn märker inte när förutsättningarna ändras? Vore extremt värdefullt om någon ville ägna någon minut eller två som kan det här bättre än mig


Tack på förhand!
Användarvisningsbild
Klas-Kenny
Inlägg: 11831
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Arduino PWM, hur löser jag detta?

Inlägg av Klas-Kenny »

Någonting i den här stilen borde väl fungera fint, om jag förstått dig korrekt.

Kod: Markera allt

#define LITE_LAGOM 10		// Sätt lagom lång för att dimma lagom snabbt, antal ms per steg
#define PWM_PINNE 0			// Vilken PWM-utgång du använder

unsigned long time = 0;
int dutyCykle = 0;

void setup() {
	pinMode(PWM_PINNE, OUTPUT);
	delay(LITE_LAGOM);		// Delay för att inte millis ska balla ur innan tillräcklig tid gått vid programstart
}

void loop() {
	if(a && b) {			// Vilket villkor du nu har..
		if( (millis()-LITE_LAGOM) > time) {
			time = millis();
			if(dutyCykle < 255) {
				dutyCykle++;
				analogWrite(PWM_PINNE, dutyCykle);
			}
		}
	} else {
		dutyCykle = 0;
		analogWrite(PWM_PINNE, 0);
	}
}
ludde_018
Inlägg: 50
Blev medlem: 27 juni 2011, 20:41:09

Re: Arduino PWM, hur löser jag detta?

Inlägg av ludde_018 »

Grymt med snabbt svar! Jag ska testa direkt :)


Tusen tack!
Skriv svar