Digitális ellenállás
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Digitális ellenállás
Sziasztok!
Digitális ellenállással igyekszem boldogulni egy power led lámpához.
Ez a digi ellenállás:
http://store.digilentinc.com/pmod-dpot- ... ntiometer/
ilyesmi kódokat próbáltam, de vmi sztem elnézek, rosszul csinálok mert nem műkszik:
https://www.arduino.cc/en/Tutorial/DigitalPotControl
bekötés jó, mindent ellenőriztem, de semmi nem változik, akár mit is futtatok rajta!
Ha vki tudna annyit segíteni, hogy legyen egy bármilyen működőképes kódom az nagy lépés lenne!
Köszönöm!
Digitális ellenállással igyekszem boldogulni egy power led lámpához.
Ez a digi ellenállás:
http://store.digilentinc.com/pmod-dpot- ... ntiometer/
ilyesmi kódokat próbáltam, de vmi sztem elnézek, rosszul csinálok mert nem műkszik:
https://www.arduino.cc/en/Tutorial/DigitalPotControl
bekötés jó, mindent ellenőriztem, de semmi nem változik, akár mit is futtatok rajta!
Ha vki tudna annyit segíteni, hogy legyen egy bármilyen működőképes kódom az nagy lépés lenne!
Köszönöm!
Re: Digitális ellenállás
> Ha vki tudna annyit segíteni, hogy legyen egy bármilyen működőképes kódom az nagy lépés lenne!
Szívesen, ha elmeséled PONTOSAN, hogy mit szeretnél.
Kevés az információ.
Legfontosabb kérdés: Mit szeretnél elérni? Mi a célod?
> Digitális ellenállással igyekszem boldogulni egy power led lámpához.
Mit értesz a boldogulni alatt? (Ezt ne nekünk kelljen kitalálni...) Világítson, ne világítson, füstöljön...
Mi a power LED típusa? Milyen a meghajtása, a tápfeszültsége, az áramfelvétele?
> Ez a digi ellenállás:
> http://store.digilentinc.com/pmod-dpot- ... ntiometer/
OK, ezt látjuk. Adatlapját olvastad? Melyik verziót használod, a 10 kOhm-osat?
> ilyesmi kódokat próbáltam, de vmi sztem elnézek, rosszul csinálok mert nem műkszik:
A "nem műkszik" az nem elég pontos meghatározás.
1. Mit szeretnél, szerinted mi lenne a helyes működés?
2. Mit tapasztalsz helyette?
3. Az "ilyesmi kódokat" sem pontos. Másold be ide, hogy mivel próbálkoztál. (Figyelj oda, hogy kódként másold be, ne folyó szövegként.)
> bekötés jó, mindent ellenőriztem, de semmi nem változik, akár mit is futtatok rajta!
1. Honnan tudod, hogy jó a bekötés? Kérlek, mellékelj kapcsolási rajzot, pontos leírást, fotót az áramkörről.
2. "akár mit is futtatok rajta" Min futtatod? Arduino melyik? ESP? Kávéfőző? Telefon? Biztos, hogy feltöltötted rá a programot, biztos, hogy fut?
3. "de semmi nem változik" Mit változtattál az eredeti kódhoz képest?
Például:
Ezt a sort:
Kicseréltem erre: Mire az USB port füstölni kezdett.
Szívesen, ha elmeséled PONTOSAN, hogy mit szeretnél.
Kevés az információ.
Legfontosabb kérdés: Mit szeretnél elérni? Mi a célod?
> Digitális ellenállással igyekszem boldogulni egy power led lámpához.
Mit értesz a boldogulni alatt? (Ezt ne nekünk kelljen kitalálni...) Világítson, ne világítson, füstöljön...
Mi a power LED típusa? Milyen a meghajtása, a tápfeszültsége, az áramfelvétele?
> Ez a digi ellenállás:
> http://store.digilentinc.com/pmod-dpot- ... ntiometer/
OK, ezt látjuk. Adatlapját olvastad? Melyik verziót használod, a 10 kOhm-osat?
> ilyesmi kódokat próbáltam, de vmi sztem elnézek, rosszul csinálok mert nem műkszik:
A "nem műkszik" az nem elég pontos meghatározás.
1. Mit szeretnél, szerinted mi lenne a helyes működés?
2. Mit tapasztalsz helyette?
3. Az "ilyesmi kódokat" sem pontos. Másold be ide, hogy mivel próbálkoztál. (Figyelj oda, hogy kódként másold be, ne folyó szövegként.)
> bekötés jó, mindent ellenőriztem, de semmi nem változik, akár mit is futtatok rajta!
1. Honnan tudod, hogy jó a bekötés? Kérlek, mellékelj kapcsolási rajzot, pontos leírást, fotót az áramkörről.
2. "akár mit is futtatok rajta" Min futtatod? Arduino melyik? ESP? Kávéfőző? Telefon? Biztos, hogy feltöltötted rá a programot, biztos, hogy fut?
3. "de semmi nem változik" Mit változtattál az eredeti kódhoz képest?
Például:
Ezt a sort:
Kód: Egész kijelölése
for (int level = 0; level < 255; level++)
Kód: Egész kijelölése
for (int level = 0; level < 65535; level++)
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
kösziii!
ok.. tehát >>
egy digitális ellenállást szeretnék, amit encoderrel tudok változtatni, de azt hiszem csak annyi a baj, hogy nem változik az ellenállás... ha 0-255 alapon egy értékkel lehetne változtatni és a kimeneten x-y ellenállás változás lenne belőle az nekem tökéletes onnantól már megoldom.
Ez egy max 10k-s digi poti, nekem ebből csak 2k kéne... de tudtommal az értékekkel ezt lehet változtatni.
a power led egy 100w-os panel, de -tisztelettel- szerintem a kód és az ellenállás szempontjából irreleváns, analóg potival működik, ezzel nincs gond. nem az egész lámpát szeretném "veletek" összerakatni csak abban kérek segítséget, hogy egy ~x value értékkel lehessen változtatni a digipoti ellenállását.
Tulajdonképpen irreleváns hogy mire van kötve (a teljesítmény értékek figyelembe vételével).
arduino nano és mega... ezen a két eszközön próbáltam. feltöltődik a kód gond nélkül és a serialprint/serial monitor szerint a kódókban beállított value értékek változnak. pl ebben a kódban >>
és hiába mérek bárhogy bármit a kimeneten semmi nem változik, se feszkó se ohm....
bekötés:
A - connect this to voltage a + 5 V-re kötve
W - this is the pot's wiper, which changes when you set it -
B - connect this to ground. Földre kötve
CS - to digital pin 10 (SS pin) 10-es láb a digipot cs lábára kötve
* SDI - to digital pin 11 (MOSI pin) 11-es a digipot sdi -re
* CLK - to digital pin 13 (SCK pin) sck a 13-ra
köszönöm szépen ha bárki bármit hozzá tud tenni
ok.. tehát >>
egy digitális ellenállást szeretnék, amit encoderrel tudok változtatni, de azt hiszem csak annyi a baj, hogy nem változik az ellenállás... ha 0-255 alapon egy értékkel lehetne változtatni és a kimeneten x-y ellenállás változás lenne belőle az nekem tökéletes onnantól már megoldom.
Ez egy max 10k-s digi poti, nekem ebből csak 2k kéne... de tudtommal az értékekkel ezt lehet változtatni.
a power led egy 100w-os panel, de -tisztelettel- szerintem a kód és az ellenállás szempontjából irreleváns, analóg potival működik, ezzel nincs gond. nem az egész lámpát szeretném "veletek" összerakatni csak abban kérek segítséget, hogy egy ~x value értékkel lehessen változtatni a digipoti ellenállását.
Tulajdonképpen irreleváns hogy mire van kötve (a teljesítmény értékek figyelembe vételével).
arduino nano és mega... ezen a két eszközön próbáltam. feltöltődik a kód gond nélkül és a serialprint/serial monitor szerint a kódókban beállított value értékek változnak. pl ebben a kódban >>
Kód: Egész kijelölése
// set pin 10 as the slave select for the digital pot:
const int slaveSelectPin = 10;
// little delay
const int dl=50;
// channel
// watch datasheet, why there is only one usable value
const byte chnl=0x11;
///
/// Main loop
///
void loop() {
Serial.println("from 0 to 255");
// change the resistance on this channel from min to max:
for (int level = 0; level < 256; level++) {
digitalPotWrite(chnl, level);
delay(dl);
}
}
///
/// Modify wiper
///
void digitalPotWrite(byte address, byte value) {
Serial.println(value);
// take the SS pin low to select the chip
digitalWrite(slaveSelectPin,LOW);
// send in the address and value via SPI
SPI.transfer(address);
SPI.transfer(value);
// take the SS pin high to de-select the chip
digitalWrite(slaveSelectPin,HIGH);
}
bekötés:
A - connect this to voltage a + 5 V-re kötve
W - this is the pot's wiper, which changes when you set it -
B - connect this to ground. Földre kötve
CS - to digital pin 10 (SS pin) 10-es láb a digipot cs lábára kötve
* SDI - to digital pin 11 (MOSI pin) 11-es a digipot sdi -re
* CLK - to digital pin 13 (SCK pin) sck a 13-ra
köszönöm szépen ha bárki bármit hozzá tud tenni
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
természetesen a digipoti is rá van kötve a vcc +5-re a gnd a földre
Re: Digitális ellenállás
ezt nem látom a kód elején?
Ha spi kommunikációt akarsz csinálni, akkor illik az arduinonak megmondani azt.
https://www.arduino.cc/en/Tutorial/DigitalPotControl
és meg kéne nézned, hogy melyik csatornán fogadja az utasításokat a digitpotid?
mert a fenti példában egy 6csatornás eszközt vezérelnek, míg te egy egycsatornás eszközt szólongatsz.
Kód: Egész kijelölése
// inslude the SPI library:
#include <SPI.h>
// set pin 10 as the slave select for the digital pot:
const int slaveSelectPin = 10;
void setup() {
// set the slaveSelectPin as an output:
pinMode(slaveSelectPin, OUTPUT);
// initialize SPI:
SPI.begin();
}
https://www.arduino.cc/en/Tutorial/DigitalPotControl
és meg kéne nézned, hogy melyik csatornán fogadja az utasításokat a digitpotid?
mert a fenti példában egy 6csatornás eszközt vezérelnek, míg te egy egycsatornás eszközt szólongatsz.
Kód: Egész kijelölése
// channel
// watch datasheet, why there is only one usable value
const byte chnl=0x11;
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
köszi!
igen! csak lemaradt a ctrl+c ctrl+v ből... nemértem hogyan... fel se engedné tölteni ha nem lenne benne
Tehát nálam benne van a kódban csak ide tettem fel hiányosan sorry fór det!!
igen! csak lemaradt a ctrl+c ctrl+v ből... nemértem hogyan... fel se engedné tölteni ha nem lenne benne
Tehát nálam benne van a kódban csak ide tettem fel hiányosan sorry fór det!!
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
hogyan kell megnézni hogy melyik csatin fogad utasításokat?!?!
köszönöm
köszönöm
Re: Digitális ellenállás
kell-e egyáltalán az AD5160 egycsatornás eszköznek csatorna címzés?
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
hát én nem tom Te írtad
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
ez a másik kód amit próbáltam de ezzel sem ment:
persze ez elé is beirtam az spi meghívását
persze ez elé is beirtam az spi meghívását
Kód: Egész kijelölése
// set pin 10 as the slave select for the digital pot:
const int slaveSelectPin = 10;
// little delay
const int dl=50;
// channel
// watch datasheet, why there is only one usable value
const byte chnl=0x11;
///
/// Main loop
///
void loop() {
Serial.println("from 0 to 255");
// change the resistance on this channel from min to max:
for (int level = 0; level < 256; level++) {
digitalPotWrite(chnl, level);
delay(dl);
}
}
///
/// Modify wiper
///
void digitalPotWrite(byte address, byte value) {
Serial.println(value);
// take the SS pin low to select the chip
digitalWrite(slaveSelectPin,LOW);
// send in the address and value via SPI
SPI.transfer(address);
SPI.transfer(value);
// take the SS pin high to de-select the chip
digitalWrite(slaveSelectPin,HIGH);
}
Re: Digitális ellenállás
channel nélkül mit csinál?
Kód: Egész kijelölése
void digitalPotWrite(byte value) {
Serial.println(value);
// take the SS pin low to select the chip
digitalWrite(slaveSelectPin,LOW);
SPI.transfer(value);
// take the SS pin high to de-select the chip
digitalWrite(slaveSelectPin,HIGH);
}
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
nézem pillanat!
-
- DrótVégénSzéndarab
- Hozzászólások: 25
- Csatlakozott: 2015. május 19. kedd, 0:37
Re: Digitális ellenállás
Na vannak fejlemények
Ha átírom a kódot ahogy írtad úgy nem műkszik egyátalán.
ezt írja ki:
error: too many arguments to function 'void digitalPotWrite(int)'
digitalPotWrite(channel, 255 - level);
DE
Ha a post végén található, a jelen állás szerinti leginkább működő kódot használom.... akkor néha néha bevillan egy érték a mérés közben
(felmerült h rossz a digipot de másik kettőt is próbáltam és uez a szitu)
Bevillan értsd: >> fut le-föl az értéke a kód szerint >> és az idő olyan 10-20%ában be be villannak 4-6-9 kohm-os mérési eredmények a multiméteren a wiper és a föld között. egyéb esetekben végtelen vagy egy fix értéket mutat (még nem jöttem rá hogy ez utóbbi mitől függ)
SZÓVAL
szerintem jó irány ez a chanel irány mert ahogy a kód komment is írja jelen állás szerint 6 csatornán zongoráz át a cucc.. nekem meg tudtommal csak egy van. próbáltam átírni azt a részt h ne zongorázgasson, lgyen fixY de csak végtelen ellenállás jött ki a kimeneten.
most itt tartok.... ha van bárkinek bámi ötlete akkor örömmel hallgatom
Ha átírom a kódot ahogy írtad úgy nem műkszik egyátalán.
ezt írja ki:
error: too many arguments to function 'void digitalPotWrite(int)'
digitalPotWrite(channel, 255 - level);
DE
Ha a post végén található, a jelen állás szerinti leginkább működő kódot használom.... akkor néha néha bevillan egy érték a mérés közben
(felmerült h rossz a digipot de másik kettőt is próbáltam és uez a szitu)
Bevillan értsd: >> fut le-föl az értéke a kód szerint >> és az idő olyan 10-20%ában be be villannak 4-6-9 kohm-os mérési eredmények a multiméteren a wiper és a föld között. egyéb esetekben végtelen vagy egy fix értéket mutat (még nem jöttem rá hogy ez utóbbi mitől függ)
SZÓVAL
szerintem jó irány ez a chanel irány mert ahogy a kód komment is írja jelen állás szerint 6 csatornán zongoráz át a cucc.. nekem meg tudtommal csak egy van. próbáltam átírni azt a részt h ne zongorázgasson, lgyen fixY de csak végtelen ellenállás jött ki a kimeneten.
most itt tartok.... ha van bárkinek bámi ötlete akkor örömmel hallgatom
Kód: Egész kijelölése
/*
Digital Pot Control
This example controls an Analog Devices AD5206 digital potentiometer.
The AD5206 has 6 potentiometer channels. Each channel's pins are labeled
A - connect this to voltage
W - this is the pot's wiper, which changes when you set it
B - connect this to ground.
The AD5206 is SPI-compatible,and to command it, you send two bytes,
one with the channel number (0 - 5) and one with the resistance value for the
channel (0 - 255).
The circuit:
* All A pins of AD5206 connected to +5V
* All B pins of AD5206 connected to ground
* An LED and a 220-ohm resisor in series connected from each W pin to ground
* CS - to digital pin 10 (SS pin)
* SDI - to digital pin 11 (MOSI pin)
* CLK - to digital pin 13 (SCK pin)
*/
// inslude the SPI library:
#include <SPI.h>
// set pin 10 as the slave select for the digital pot:
const int slaveSelectPin = 10;
const byte channel=0x11;
void setup() {
// set the slaveSelectPin as an output:
pinMode(slaveSelectPin, OUTPUT);
Serial.begin(9600);
// initialize SPI:
SPI.begin();
}
void loop() {
// go through the six channels of the digital pot:
for (int channel = 0; channel < 6; channel++) {
// change the resistance on this channel from min to max:
for (int level = 0; level < 255; level++) {
digitalPotWrite(channel, level);
//Serial.println(level);
delay(60);
}
// wait a second at the top:
delay(3000);
// change the resistance on this channel from max to min:
for (int level = 0; level < 255; level++) {
digitalPotWrite(channel, 255 - level);
//Serial.println(level);
delay(60);
}
delay(3000);
}
}
void digitalPotWrite(byte address, byte value) {
// take the SS pin low to select the chip:
digitalWrite(slaveSelectPin, LOW);
Serial.println(value);
// send in the address and value via SPI:
SPI.transfer(address);
SPI.transfer(value);
// take the SS pin high to de-select the chip:
digitalWrite(slaveSelectPin, HIGH);
Serial.println(value);
}
Re: Digitális ellenállás
egen.Na vannak fejlemények
Ha átírom a kódot ahogy írtad úgy nem műkszik egyátalán.
ezt írja ki:
error: too many arguments to function 'void digitalPotWrite(int)'
digitalPotWrite(channel, 255 - level);
tudtam, hogy én vagyok a hibás...
hiszen mi is volt a kiindulási javaslatom?
erre te hogy hívod meg a függvényed?channel nélkül mit csinál?{Kód: Egész kijelölése
void digitalPotWrite(byte value)
Kód: Egész kijelölése
digitalPotWrite(channel, 255 - level);
mert azt nem írtam, hogy a függvény meghívásakor nem kettő, hanem egy argumentumot kell átadni.
a level értékét.
és amikor erre panaszkodik a fordító, hogy
too many arguments to function...
vagyis túl sok argumentum (=bemenő adat) van a meghívásban, ezt elegánsan figyelmen kívül hagyod.
Kód: Egész kijelölése
digitalPotWrite(channel, 255 - level);
Kód: Egész kijelölése
digitalPotWrite(255 - level);
ugye...
Re: Digitális ellenállás
jaj mester úr!Kód: Egész kijelölése
// go through the six channels of the digital pot: for (int channel = 0; channel < 6; channel++) {
átveszel egy hatcsatornás eszközre írt mintaprogramot egy egycsatornás eszközre.
szaraxol az itt nem is létező csatorna címzéssel.
csinálj egy tesztágyat:
Kód: Egész kijelölése
for érték 1 től 255ig
{
aktiválod a DS lábat
SPI.transfer(érték)
vársz 300ms-ot
bejövő=SPI.transfer()
vársz 300ms-ot
deaktiválod a DS lábat
kiíratod az érték és a bejövő változót a soros portra
vársz 3000ms-ot
}