Hallo Adafruits fans
I have Problem with Adafruit 815 board .
I need manage 8 pwm ventilators with different speed controlled by temperature sensor.
data I have from One wire temp sensor program working fine (on raspberry and with Go).
Signal on PWM pin working fine but ventilator(Arctic F8 PWM) working only with one speed .
Its possible manage this with Adafruit 815 or I making some failure with set-up ,program or connection.
Thanks for answer and possible help.
J A R O
HELLO FIRST POSTING
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: HELLO FIRST POSTING
Hi. I moved your post here from the Test Message forum.
We are not familiar with this ventilator. If you can post some technical information about its control interface, we can try to answer your question.ventilator(Arctic F8 PWM) working only with one speed
-
- Posts: 10
- Joined: Fri Nov 08, 2013 7:46 am
Re: HELLO FIRST POSTING
Sorry for multi posting.
Data for cooler ventilator:
80mm
850-2000 RPM / 31 CFM
22dBA
Fluid dynamic bearing
Thanks
Data for cooler ventilator:
80mm
850-2000 RPM / 31 CFM
22dBA
Fluid dynamic bearing
Thanks
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: HELLO FIRST POSTING
Do you have a link to the data sheet? We need to know the electrical specifications for the control interface in order to determine if the PWM board is compatible. If you can post a photo of your setup and connections, that would be helpful as well.
-
- Posts: 10
- Joined: Fri Nov 08, 2013 7:46 am
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: HELLO FIRST POSTING
OK. Looks like a standard 4-wire CPU fan. How do you have it connected?
-
- Posts: 10
- Joined: Fri Nov 08, 2013 7:46 am
Re: HELLO FIRST POSTING
Basic connection:
Black - gnd
red - 12v (power pin)
yellow - PWM pin
blue - no use
J.
Black - gnd
red - 12v (power pin)
yellow - PWM pin
blue - no use
J.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: HELLO FIRST POSTING
The 4th pin (blue) is usually the control pin.
http://www.allpinouts.org/index.php/Mot ... _4_Pin_Fan
http://www.allpinouts.org/index.php/Mot ... _4_Pin_Fan
-
- Posts: 10
- Joined: Fri Nov 08, 2013 7:46 am
Re: HELLO FIRST POSTING
I changed blue and yellow wire but effect is only reduction of speed and power (from 143mA to110 mA)
but no regulation of speed(PWM working from 0 to 100 %).
but no regulation of speed(PWM working from 0 to 100 %).
-
- Posts: 10
- Joined: Fri Nov 08, 2013 7:46 am
Re: HELLO FIRST POSTING
I check :http://www.formfactors.org/developer/sp ... Public.pdf
//PWM Frequency: Target frequency 25 kHz,
acceptable operational range 21 kHz to 28 kHz //
On oscilloscope I haw 40,365 hz = 100%
and 112,88 hz = 0%
Maybe this is problem ?
Is possible adjust output pwm frequency ?
J.
//PWM Frequency: Target frequency 25 kHz,
acceptable operational range 21 kHz to 28 kHz //
On oscilloscope I haw 40,365 hz = 100%
and 112,88 hz = 0%
Maybe this is problem ?
Is possible adjust output pwm frequency ?
J.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: HELLO FIRST POSTING
Yes. There is a function to set the PWM frequency: http://learn.adafruit.com/16-channel-pw ... -reference
-
- Posts: 10
- Joined: Fri Nov 08, 2013 7:46 am
Re: HELLO FIRST POSTING
now I checked program but I have set maximum
----
onduty := ((4096 / 100) * v.LastPower) - 1 // max is 4095
if onduty < 0 {onduty = 0}
if onduty > 4094 {onduty = 4094}
offduty := 4095
log.Printf("Setting new Servo values %f - %f, %f ", v.LastPower, onduty, offduty)
v.setPWM(int(onduty), int(offduty))
---
//setPWMFreq should set output modulattion - probably something like check timer for on/off
func (s *Servo) setPWMFreq(freq float64) {
log.Printf("Setting output frequency %f for servo at channel %s ", freq, s.Channel)
prescale := 25000000.0 //this should be osc clock
prescale /= 4096.0 //12bit resolution
prescale /= float64(freq)
prescale -= 1.0
log.Printf("Estimated Prescale %f for servo at channel %s ", prescale, s.Channel)
prescale = math.Floor(prescale + 0.5)
log.Printf("Final Prescale %f for servo at channel %s ", prescale, s.Channel)
I check possibility to add 50 MHz external oscillator maybe this help .?????
J.
----
onduty := ((4096 / 100) * v.LastPower) - 1 // max is 4095
if onduty < 0 {onduty = 0}
if onduty > 4094 {onduty = 4094}
offduty := 4095
log.Printf("Setting new Servo values %f - %f, %f ", v.LastPower, onduty, offduty)
v.setPWM(int(onduty), int(offduty))
---
//setPWMFreq should set output modulattion - probably something like check timer for on/off
func (s *Servo) setPWMFreq(freq float64) {
log.Printf("Setting output frequency %f for servo at channel %s ", freq, s.Channel)
prescale := 25000000.0 //this should be osc clock
prescale /= 4096.0 //12bit resolution
prescale /= float64(freq)
prescale -= 1.0
log.Printf("Estimated Prescale %f for servo at channel %s ", prescale, s.Channel)
prescale = math.Floor(prescale + 0.5)
log.Printf("Final Prescale %f for servo at channel %s ", prescale, s.Channel)
I check possibility to add 50 MHz external oscillator maybe this help .?????
J.
- adafruit_support_bill
- Posts: 88093
- Joined: Sat Feb 07, 2009 10:11 am
Re: HELLO FIRST POSTING
What processor are you using to control the PWM board?
Please be positive and constructive with your questions and comments.