Hallo,
Op dit moment ben ik bezig met het maken van een fan controller voor mijn case fans. Echter heb ik niet heel veel kennis van arduinos programmeren. Nu wil ik graag de fans uitlezen en aansturen met behulp van de ingebouwde DAC van de fan controller IC (MAX6650) alleen heb ik nog geen resultaat behaald helaas. Kan iemand mij helpen?
Relevante software en hardware die ik gebruik:
MAX 6650
---
https://datasheets.maximi...en/ds/MAX6650-MAX6651.pdf
Arduino RP2040
---
https://docs.arduino.cc/hardware/nano-rp2040-connect
Dit is mijn code tot nu toe alleen veranderd de fan speed niet en de het uitlezen van de rpm klopt niet.
Op dit moment ben ik bezig met het maken van een fan controller voor mijn case fans. Echter heb ik niet heel veel kennis van arduinos programmeren. Nu wil ik graag de fans uitlezen en aansturen met behulp van de ingebouwde DAC van de fan controller IC (MAX6650) alleen heb ik nog geen resultaat behaald helaas. Kan iemand mij helpen?
Relevante software en hardware die ik gebruik:
MAX 6650
---
https://datasheets.maximi...en/ds/MAX6650-MAX6651.pdf
Arduino RP2040
---
https://docs.arduino.cc/hardware/nano-rp2040-connect
Dit is mijn code tot nu toe alleen veranderd de fan speed niet en de het uitlezen van de rpm klopt niet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
| #include <Wire.h> const byte KtachCommand=0b00000000; const byte ConfigCommand=0b00000010; const byte ConfigData=0b00101000; const byte GPIODEFCommand=0b00000100; const byte DACCommand=0b00000110; const byte AlarmEnableCommand=0b00001000; const byte AlarmCommand=0b00001010; const byte Tach0Command=0b00001100; const byte Tach1Command=0b00001110; const byte Tach2Command=0b00010000; const byte Tach3Command=0b00010010; const byte GPIOSTATCommand=0b00010100; const byte COUNTCommand=0b00010110; const byte COUNTData=0b00000011; int RPM; byte Ktach=100; int FanControllerAddress=72; int Tach0RPM; int Tach1RPM; int Tach2RPM; int Tach3RPM; byte TachInput; int counter; void setup(){ Wire.begin(); // join i2c bus (address optional for master) Serial.begin(9600); Wire.beginTransmission(FanControllerAddress); // transmit to device Wire.write(ConfigCommand); // transmits command Wire.write(ConfigData); // transmits data Wire.write(COUNTCommand); Wire.write(COUNTData); Wire.endTransmission(); delay(10); } void loop(){ if (counter==0){ UpdateFans(); ScreenUpdate();} KtachUpdate(); delay(50); counter++; if (counter==20){ counter=0;} } void KtachUpdate(){ if(Serial.available()>0){ byte input=Serial.read(); if (input=='u') Ktach=Ktach-1; else if (input=='d') Ktach=Ktach+1; if (Ktach<64) Ktach=64; if (Ktach>250) Ktach=250; RPM=59531.25/(Ktach+1); Wire.beginTransmission(FanControllerAddress); Wire.write(KtachCommand); Wire.write(Ktach); Wire.endTransmission(); delay(10);} } void UpdateFans(){ Wire.beginTransmission(FanControllerAddress); Wire.write(Tach0Command); Wire.requestFrom(FanControllerAddress,1); if (Wire.available()>0){ TachInput=Wire.read();} if (TachInput>0){ Tach0RPM=TachInput*15;} Wire.endTransmission(); delay(10); } void ScreenUpdate(){ Serial.print("RPM= "); Serial.println(RPM); Serial.print("Ktach= " ); Serial.println(Ktach,DEC); Serial.print("Tach0 RPM = "); Serial.println(Tach0RPM); Serial.println(" "); } |
[ Voor 0% gewijzigd door rsnubje op 23-06-2022 17:32 ]