Arduino -ketju (kysymykset/keskustelu)

Ei ollut, ja tietokoneeseen kytken.

No kokeile toimiiko ledivilkutuskoodi kun arduino saa virran PS/2 liittimesta, eli 3,3 volttia. Löytyy esimerkeistä nimellä Blink.

Edit: PS/2 liittimestä tulee muuten yleensä 5 volttia. Onko tuo linkkaamasi kuva ainut ohje jota olet seurannut?
 
Viimeksi muokattu:
Saattaa toimia sillä "3,3" voltilla 16 Mhz kide. Mittaa paljonko sieltä ohjaimelta tulee.
D71A6.png


Näyttäisi tuon nanon pohjalla olevan 5v regu, että se kait pitäisi ottaa pois, että voisi toimia vähemmällä.
 
Viimeksi muokattu:
Saattaa toimia sillä "3,3" voltilla 16 Mhz kide. Mittaa paljonko sieltä ohjaimelta tulee.
D71A6.png


Näyttäisi tuon nanon pohjalla olevan 5v regu, että se kait pitäisi ottaa pois, että voisi toimia vähemmällä.
Tuossa kuvassa 15MHz vaatii jo 3.6V jotta pysyy soa alueella.

Lähetetty minun TA-1053 laitteesta Tapatalkilla
 
Saattaa toimia sillä "3,3" voltilla 16 Mhz kide. Mittaa paljonko sieltä ohjaimelta tulee.

Menee speksien ulkopuolelle, se voi toimia, olla toimimatta tai toimia osittain ja sitten tapahtuu asioita arvalla, esim. EEPROM ei toimi kunnolla/ollenkaan tai jotain ihan muuta.

Noissa atmeleissa on sisäänrakennettu kello mitä voi käyttää max. 8mhz taajuudella, niin pysyy specsien sisällä jos 3.3v jänöllä menee.
 
Menee speksien ulkopuolelle, se voi toimia, olla toimimatta tai toimia osittain ja sitten tapahtuu asioita arvalla, esim. EEPROM ei toimi kunnolla/ollenkaan tai jotain ihan muuta.

Noissa atmeleissa on sisäänrakennettu kello mitä voi käyttää max. 8mhz taajuudella, niin pysyy specsien sisällä jos 3.3v jänöllä menee.

Eikös atmelin "sulakkeita" pidä säätää, jos käyttääkin sisäistä kelloa?
Siihen tarttee vaan aika kalliin ohjelmointilaitteen.

Panostaisivat enemmän noihin esp8266 vermeisiin, kun niissä ei tartte "sulakkeita" ronkkia. Samalla olisi toiminut 3,3v:lla aika helposti, jos wifi pois päältä..
 
Pitää muuttaa fuse bitit. Pitäisi onnistua AVRdudella, jos en ihan väärin muista. Tai sitten toinen vaihtoehto tosiaan on hommata atmel-ice ohjelmointilaite/debuggeri, taitaa olla tälläkin hetkellä alennuksessa microchipin kaupassa tuo.(tuo kannattaa hommata joka tapauksessa jos enemmän pulaa AVR piirien kanssa, itse sain omani ~50€ alennus myynneistä)
 
Pitää muuttaa fuse bitit. Pitäisi onnistua AVRdudella, jos en ihan väärin muista. Tai sitten toinen vaihtoehto tosiaan on hommata atmel-ice ohjelmointilaite/debuggeri, taitaa olla tälläkin hetkellä alennuksessa microchipin kaupassa tuo.(tuo kannattaa hommata joka tapauksessa jos enemmän pulaa AVR piirien kanssa, itse sain omani ~50€ alennus myynneistä)

AVRdude on tosiaan se ohjelma, millä voi niitä sulakesäätöjä tehdä, jos on toimiva ohjelmointilaite ja 50€ on hurja hinta sellaiselle.
Sulla taitaa olla runsaastikin noita AVR piirejä? Mulla taitaapi olla nykyään enemmän noita ESP8266 piirejä, kun ne on vaan halpoja. Porukka kohisee tuubissa etenkin ESP32:sta.
 
AVRdudella see arduinokin ohjelmoidaan Arduino idestä, toimii bootloaderin kautta, eli ei vaadi ohjelmointi laitetta.
 
AVRdudella see arduinokin ohjelmoidaan Arduino idestä, toimii bootloaderin kautta, eli ei vaadi ohjelmointi laitetta.

Niin saa, mutta "sulake" säädöt vaatii parempaa vehjettä. Kaikenlaisilla rimpuloilla tuli testattua esim. kaksi USBasp-laitetta ja ei mitään tulosta.
 
Kyllä ne AVRdudella saa muutettua, juuri tarkistin. **
Ja tosiaan unohtui aiemmin mainita niin toiseen arduinoon voi aina laittaa avrisp sketsin sisään ja käyttää sitä ohjelmointi laitteena, jos ei tahdo onnistua muuten.


** Engbedded AVR Fuse Calculator
AVR Tutorial - AVRDUDE

Tuossa on hyvä pätkä mihin nää 8bit prossut taipuu, siksi en ole itsekkään viitsinyt vielä siirtyä ARM puolelle omissa räpellyksissä
Impossible Graphics Power from an ATiny85!
 
Viimeksi muokattu:
Onko Arduinolle olemassa jotain simulaattoria, jolla pystyisi seuraamaan koodin toimimista rivi kerrallaan? Tai muisin käyttäytymistä.

Mulla on vähän ongelmia, kun en ole nyt oikein varma ongelmiiko mun virittelyt siksi että muisti loppuu, vai onko siellä jotain muuta ongelmaa.

(ohjaan ws2812b ledinauhoja Arduino Nanolla, mulla on niistä tehty sellainen 16x100 pikselinen kokoinen ledmatriisi johon tunkee ylimääräisä välähtelyjä, jonka periaatteessa voisi selittää se että muisti vuotaa jotenkin)
 
atmel-ice niin pystyt debuggaamaan, rivi riviltä :) atmel studiossa on simulaattori, mutten muista nyt ulkoa mitä kaikkea se näyttää.

Minkälainen virtalähde sulla on jos noin hemmetisti noita ledejä? (16*100?)

Edit: 16*100*60mA=96A (maksimi kulutus, adafruitin lukemilla)
Ja siis tuollainen määrä ledejä niin lähestulkoon 100% varmasti loppuu muisti kesken, olettaen että teit jollain arduinon kirjastolla tuon ohjauksen.
 
Viimeksi muokattu:
PC powerilla olen tuota käyttänyt, tarkkaa virrankulutusta en tiedä mutta kun testailin sitä, niin 90% ledeistä päällä 200/255 kirkkaudella valkoista otti n. 10A virtaa yleismittarin mukaan. Tuossa mun testikytkennässä on vähän ohuet virrransyöttö johtimet joten alkaa pudottaa jännitettä, kun virta kasvaa, sillä on lähinnä se vaikutus että valkoinen muuttuu keltaiseksi, sininen kai himmenee ensimmäisenä. Käytännössä tuo maksimi virta ei ole mikään ongelma vielä ollut.

Nanon muisti ei riittäisi jos tuo olisi yksi 1600 pikseliä pitkä nauha, mutta onhan tuossa arduinossa noita pinnejä, ja kun tarkoituksena ei ole mitään videoscreeniä yrittääkään tehdä, ei tuollainen max 10fps tuota vielä mitään silmiinpistävää ongelmaa. Eli ovat siis kytketty 8x200 pixeliä, ja pikselidataa luetaan suoraan flash muistista, joka riittää kyllä hyvin, mutta kun mä olen jokseenkin rookie ohjelmoija (ja sekin vähä mitä on on lähinnä php:tä), en ole ihan varma miten esimerkiksi tuo pointteri jolla viittaan esitettävään kuvaan oikeasti käyttäytyy. Se piirtää ensin super marion ihan nätisti, mutta kun tuo ajaa kokoajan looppia, niin seuraavalla piirtokerralla sinne marion sekaan ilmestyy sinne tälle epämääräisesti välähteleviä pikseleitä..

Taitaa oikeastaan kuutua ohjelmointi puolelle nämä...
 
Nyt on Arduino Nano klooni hommattu. IDEn asensin ja testasin että rauta toimii. Grand plan on että rakennan tuulettimelle lämpötilaohjatun säätimen tästä. Koneessa on AIO jonka tuuletinta ei voi säätää nesteen lämpötilan mukaan.
Sitten kysymys, miten onnistuu lämpötilan mittaus Arduinolla PC:n lämpötila-anturista? Jos otetaan esimerkiksi vaikka tällainen veden lämpötila-anturi:
upload_2018-3-22_10-25-17.png

Nämä ovat ilmeisesti 10kohmin NTC tai PTC vastuksia? Nihkeästi löytyy dataa näistä?
Elektroniikan kanssa en oikeastaan ole touhunnut, ohjelmointikokemusta on jonkun vähän.
 
ADC:lla mittaat ja teet laskutoimituksen, minkä mukaan sitten PWM ohjaat sitä tuuletinta halutulla tavalla.

Kysy valmistajalta datalehtistä siitä anturista.
 
Voinko lukea 12V analogreadillä huoletta vai laskenko jännitteenjaolla 5v?
 
Ei voi lukea suoraan. Jos korttisi käyttöjännite on 5V niin pitää olla max 5V ja jos kortti on 3.3V niin sitten max se.
 
Mitenkäs noi AnalogInputit tarkalleen toimiin. Tällä hetkällä saan luettua jotenkin hieman korkeampia jänniteitä kuin mitä ne oikeasti on! Esim piirin oman 3v3 jänöksi ilmoittaa 3.5v ja tarkastin yleismittarilla että kyllä sieltä ihan oikein tulee se 3.3v'

edit:

koodi on napsattu vaan nopeesti esimerkeistä.
Koodi:
/*
  ReadAnalogVoltage

  Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}
 
Onko sulla 3.3v käyttöjännite? Kannattaa googlettaa "avr adc" ja lisänä voit käyttää sen piirin mallia mikä siinä arduinossa sattuu olemaan kiinni niin löytyy hyvin infoa. Datalehdessä myös selitetty toiminta hyvin.
 
Onko sulla 3.3v käyttöjännite? Kannattaa googlettaa "avr adc" ja lisänä voit käyttää sen piirin mallia mikä siinä arduinossa sattuu olemaan kiinni niin löytyy hyvin infoa. Datalehdessä myös selitetty toiminta hyvin.
5v (usb) on tällä hetkellä käyttöjännite. Kokeilin myös mitata akkua jonka jännite on 4.3v ja siinä sama homma antaa hieman korkeammat lukemat 4.53v
 
Viimeksi muokattu:
Aika iso heitto kyllä sitten, adc:n tarkkuudesta tuollainen ei pitäisi olla kiinni kun resoluutio riittää kyllä huomattavasti parempaan.

Miten tuo adc on konfiguroitu? Sieltä se heitto varmaan tulee.
 
Vakiona Arduinon adc käyttää referenssinä Vcc:tä, eli USB:n syöttäessä mitä sieltä sattuu tulemaankaan (jos 5 Voltin Arduino).
Kannattaa siis tarkistaa syöttöjännitteen taso.
Jos Arduino pysyy saman virransyötön perässä ja luottaa jännitteen vaka(vu)uteen, niin tuon koodissa olevan skaalaimen voi tietenkin muuttaa vastaamaan todellista referenssijännitettä. Jos ei, piiristä löytyy myös sisäinen jännitereferenssi, sitten vaan tarvitsee skaalata sisääntuleva jännite. Ulkoisenkin jännitereferenssin voi laittaa...
 
CPUn käyttöjännitteen voisi mitata. USB:stä ei varmaan tule 5V eli härveli voi hyvin käyttää 3,3V volttia tai vähän yli. Miten lasket että tulos on 3.5V? Arduinon AD muunnin antaa jotain välillä 0-1024. Se on sitten ohjelman murhe miettiä mitä se tarkoittaa. Maksimi on usein CPUn käyttöjännite mutta muistaakseni se voi olla muutakin.
 
AD muunnin antaa jotain välillä 0-1023. Se on sitten ohjelman murhe miettiä mitä se tarkoittaa. Maksimi on usein CPUn käyttöjännite mutta muistaakseni se voi olla muutakin.

Referenssi jännite on joko VCC, sisäinen 1.1v tai jotain mitä on tuotu aref kintulle siihen micropiiriin, tuo referenssi jännite määrittää sen maksimin mitä voi mitata samalla.

Koodi:
float voltage = ADC * (referenssijännite / 1023.0);
 
Referenssi jännite on joko VCC, sisäinen 1.1v tai jotain mitä on tuotu aref kintulle siihen micropiiriin, tuo referenssi jännite määrittää sen maksimin mitä voi mitata samalla.

Koodi:
float voltage = ADC * (referenssijännite / 1023.0);

Eli jos USBn kautta VCC sattuu olemaaan vaikka 4.7v nii tuo AI0 palauttaa maksimin (1023) kun sinne syötetty jännite on 4.7v. Tämä selittää paljon, ja tosiaan kun korjasin tuon kertoimen samaksi kuin syöttöjännite, nii alkoi löytymään oikeita lukemia! :tup: Kuinkas tuon sitten saa askarreltua niin että se "kalibroi" itse itsensä? :joy:
 
VCC:llä tarkoitat varmaan CPUn piikissä olevaa jännitettä. USB piuhasta voi tulla jotain muuta mitä sattuu. Mitä tarkoitat kalibroinnilla? On olemassa jännitereferenssejä eli komponentteja joista saa tarkan jännitteen. Jossain Arduino CPUssakin voi olla sellainen.
 
Eli jos USBn kautta VCC sattuu olemaaan vaikka 4.7v nii tuo AI0 palauttaa maksimin (1023) kun sinne syötetty jännite on 4.7v. Tämä selittää paljon, ja tosiaan kun korjasin tuon kertoimen samaksi kuin syöttöjännite, nii alkoi löytymään oikeita lukemia! :tup: Kuinkas tuon sitten saa askarreltua niin että se "kalibroi" itse itsensä? :joy:

Sopivin toteutustapa riippuu paljon siitä, mitä on tarkoitus mitata ja millä budjetilla. Jos mitattava kohde on "hidas", esimerkiksi akun jännitteen mittaus, helpoin tapa olisi varmaankin muuttaa jännitereferenssiksi 328:n sisäinen "1,1 V" ja skaalata akun jännite välille 0 V - 1,1 V jännitteenjaolla.

Kytkentä on hyvin yksinkertainen:

R1 ja R2 muodostavat jännitteenjaon seuraavan kaavan mukaan:
ArduinoA0=Mittaus*R2/(R1+R2)
jos sovitaan R1 arvoksi 1M Ohm niin saadaan R2 kaavaksi:
R2=ArduinoA0*R1/(Mittaus-ArduinoA0)
Käytetään esimerkkiarvoina seuraavia:
Mittaus = 5 V
ArduinoA0 = 1.1 V
R1 = 1M Ohm
Saadaan R2 arvoksi 282k Ohm, josta seuraava pienempi standardiarvo on 270k Ohm,
jolla 5 voltin mittausjännitteellä arduinolle lähtevä jännite on luokkaa 1.06 V.

Vastusten kokoluokko kannattaa pitää "kohtuullisena", liian pienillä nousee hukkatehon määrä ja liian suurilla nousee arduinolle lähtevän signaalin impedanssi turhan suureksi, virallinen suositus on pitää sisääntulon impedanssi luokassa 10k Ohm, mutta hitailla ja yksikanavaisilla mittauksilla toimii suurempikin. Esimerkissä käytetyn suuruusluokan vastuksilla akun jännitteen valvonta onnistuu varmasti(tm).

C1 ei ole pakollinen suhteellisen hitaille mittauksille, jos käytössä on vain yksi sisääntulo, jolloin mittakondensaattoria ladataan vain yhteen jännitetasoon. Sen tarkoituksena on madaltaa imedanssia ja siten pitää arduinolle lähtevä jännite vakaana mittauksen aikana, kun piirin sisäinen mittakondensaattori varataan. Suuruusluokaltaan nanofaradeja.

Ainoa tarvittava lisäys koodiin on setuppiin "analogReference(INTERNAL);", joka vaihtaa adc:n referenssiksi sisäisen 1,1 V referenssin.
Lisäksi jännitteeksi muunnoksen kerrointa tarvitsee todennäköisesti hienosäätää, koska vref ei ole tasan 1,1 volttia, vaan vaihtelee yksilöittäin ja vastukset eivät ole täsmälleen mitoitetun suuruisia eivätkä absoluuttisen tarkkoja.
Koodi:
/*
  ReadAnalogVoltage
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
  This example code is in the public domain.
  http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*/
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  analogReference(INTERNAL);
}
// the loop routine runs over and over again forever:
void loop() {
  delay(100);
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}
Jos tarvitaan useampia mittauskanavia ja suurempaa näytteenottotaajuutta, kuin kymmeniä hertsejä, kannataa varmaankin tutustua operaatiovahvistimien käyttöön, niillä saa jännitteen skaalattua juuri sopivalle alueelle ja saadaan matalaimpedanssinen signaali arduinolle.
 
Sopivin toteutustapa riippuu paljon siitä, mitä on tarkoitus mitata ja millä budjetilla. Jos mitattava kohde on "hidas", esimerkiksi akun jännitteen mittaus, helpoin tapa olisi varmaankin muuttaa jännitereferenssiksi 328:n sisäinen "1,1 V" ja skaalata akun jännite välille 0 V - 1,1 V jännitteenjaolla.

Kytkentä on hyvin yksinkertainen:

R1 ja R2 muodostavat jännitteenjaon seuraavan kaavan mukaan:
ArduinoA0=Mittaus*R2/(R1+R2)
jos sovitaan R1 arvoksi 1M Ohm niin saadaan R2 kaavaksi:
R2=ArduinoA0*R1/(Mittaus-ArduinoA0)
Käytetään esimerkkiarvoina seuraavia:
Mittaus = 5 V
ArduinoA0 = 1.1 V
R1 = 1M Ohm
Saadaan R2 arvoksi 282k Ohm, josta seuraava pienempi standardiarvo on 270k Ohm,
jolla 5 voltin mittausjännitteellä arduinolle lähtevä jännite on luokkaa 1.06 V.

Vastusten kokoluokko kannattaa pitää "kohtuullisena", liian pienillä nousee hukkatehon määrä ja liian suurilla nousee arduinolle lähtevän signaalin impedanssi turhan suureksi, virallinen suositus on pitää sisääntulon impedanssi luokassa 10k Ohm, mutta hitailla ja yksikanavaisilla mittauksilla toimii suurempikin. Esimerkissä käytetyn suuruusluokan vastuksilla akun jännitteen valvonta onnistuu varmasti(tm).

C1 ei ole pakollinen suhteellisen hitaille mittauksille, jos käytössä on vain yksi sisääntulo, jolloin mittakondensaattoria ladataan vain yhteen jännitetasoon. Sen tarkoituksena on madaltaa imedanssia ja siten pitää arduinolle lähtevä jännite vakaana mittauksen aikana, kun piirin sisäinen mittakondensaattori varataan. Suuruusluokaltaan nanofaradeja.

Ainoa tarvittava lisäys koodiin on setuppiin "analogReference(INTERNAL);", joka vaihtaa adc:n referenssiksi sisäisen 1,1 V referenssin.
Lisäksi jännitteeksi muunnoksen kerrointa tarvitsee todennäköisesti hienosäätää, koska vref ei ole tasan 1,1 volttia, vaan vaihtelee yksilöittäin ja vastukset eivät ole täsmälleen mitoitetun suuruisia eivätkä absoluuttisen tarkkoja.
Koodi:
/*
  ReadAnalogVoltage
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
  This example code is in the public domain.
  http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*/
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  analogReference(INTERNAL);
}
// the loop routine runs over and over again forever:
void loop() {
  delay(100);
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}
Jos tarvitaan useampia mittauskanavia ja suurempaa näytteenottotaajuutta, kuin kymmeniä hertsejä, kannataa varmaankin tutustua operaatiovahvistimien käyttöön, niillä saa jännitteen skaalattua juuri sopivalle alueelle ja saadaan matalaimpedanssinen signaali arduinolle.


No pannaas ideaa esille... Eli tarve olisi syöttää virtaa max 30A, niin että jännite on säädettävissä noin 0-10v välillä.
Sekä vastus olisi hyvä saada luettua 0-2Ω välilät, niin tarkasti kuin mahdollista (tavoite 0,01Ω).

Arduino hoitasi tässä kohtaa vähintään infonäytön virkaa, josta voin lukea voltit, ohmit ja tehon. Jos into riitää ja ideat ei vaadi kummoisia komponentteja niin toiveissa olis saada arduino myös säätämään jänniteregulaattoria ja siinä samalla rajoittamaan teho max 200W.
 
Ihan vain heittona, en ole tuollaista tehnyt, mielessä on kyllä ollut.
Jännitemittaus on varmaan jo käsitelty.
Virtamittaukseen joku hall-sensori, näitä saa esim. spi-liitännällä vajaan kympin hintaan. Ehkä jostain halvempiakin.
https://www.mouser.fi/ProductDetail...=sGAEpiMZZMsPYxdnOoPGeklPYl53VMbzMjLvBDnC4rU=

Digitaalinen potikka virtalähteen vakiopotikan tilalle, esim. numeronäppäimistöltä jännitteen (resistanssin) valinta
https://www.mouser.fi/search/refine.aspx?N=7283852

Tehon ja resistanssin voi laskea. Virtarajoitus niin että kun virta menee liian suureksi, jännitettä pudotetaan joitain pykäliä per mittauskierros. Nostetaan jos virtarajoitus antaa myöten.

Menisikö ihan noin yksinkertaisesti?
 
Virtamittaukseen joku hall-sensori, näitä saa esim. spi-liitännällä vajaan kympin hintaan. Ehkä jostain halvempiakin.
https://www.mouser.fi/ProductDetail/Infineon-Technologies/TLI4970D050T4XUMA1?qs=sGAEpiMZZMsPYxdnOoPGeklPYl53VMbzMjLvBDnC4rU=


Tehon ja resistanssin voi laskea. Virtarajoitus niin että kun virta menee liian suureksi, jännitettä pudotetaan joitain pykäliä per mittauskierros. Nostetaan jos virtarajoitus antaa myöten.

Menisikö ihan noin yksinkertaisesti?
Periaatteessa kyllä. Kiinasta oli saatavilla oikein pakattu virtalähde jossa reguloinnin hoiti joku prosessori. Se vain että jos prosessorilla oli kiireitä esim. näppäinten luvussa, niin regulointi jäi väliin.
Virranmittauksen voi hoitaa jollain shunttivastuksellakin. Ehkä myös löytyy sopivia piirejä 30 amppeerille. Ne voivat olla helpompia käyttää ja tarkempia.

10V ja 30A tekee 300W. Joku paikka tarvitsee aika rajun jäähdytyksen.

Resistanssi varmaan lasketaan virrasta ja jännitteestä.

Jos tietää piirin nimen tai että shunttivastus on englanniksi shunt resistor, niin niitä etsiä myös Ebaystä.
 
Ihan vain heittona, en ole tuollaista tehnyt, mielessä on kyllä ollut.
Jännitemittaus on varmaan jo käsitelty.
Virtamittaukseen joku hall-sensori, näitä saa esim. spi-liitännällä vajaan kympin hintaan. Ehkä jostain halvempiakin.
https://www.mouser.fi/ProductDetail/Infineon-Technologies/TLI4970D050T4XUMA1?qs=sGAEpiMZZMsPYxdnOoPGeklPYl53VMbzMjLvBDnC4rU=

Digitaalinen potikka virtalähteen vakiopotikan tilalle, esim. numeronäppäimistöltä jännitteen (resistanssin) valinta
https://www.mouser.fi/search/refine.aspx?N=7283852

Tehon ja resistanssin voi laskea. Virtarajoitus niin että kun virta menee liian suureksi, jännitettä pudotetaan joitain pykäliä per mittauskierros. Nostetaan jos virtarajoitus antaa myöten.

Menisikö ihan noin yksinkertaisesti?

Mikäs vika olis mitata ohmit jännitejaolla?


Periaatteessa kyllä. Kiinasta oli saatavilla oikein pakattu virtalähde jossa reguloinnin hoiti joku prosessori. Se vain että jos prosessorilla oli kiireitä esim. näppäinten luvussa, niin regulointi jäi väliin.
Virranmittauksen voi hoitaa jollain shunttivastuksellakin. Ehkä myös löytyy sopivia piirejä 30 amppeerille. Ne voivat olla helpompia käyttää ja tarkempia.

10V ja 30A tekee 300W. Joku paikka tarvitsee aika rajun jäähdytyksen.

Resistanssi varmaan lasketaan virrasta ja jännitteestä.

Jos tietää piirin nimen tai että shunttivastus on englanniksi shunt resistor, niin niitä etsiä myös Ebaystä.

Joo ei ole tarkoitus ottaa 300W tehoa vaan matalilla volteilla käyttää matalaa vastusta ja niin edelleen. Todellin käyttö on jossain 30-100w tienoilla, mutta kun kerran askartelee nii samakai se on vetää siinne tappiin saakka.
 
Mikäs vika olis mitata ohmit jännitejaolla?
Tarvitset virran sekä jännitteen, joista lasket resistanssin.
Jos tuo SPI-liitännällä varustettu anturi kuulostaa kalliilta ja vaivalloiselta, saa noita hall-anturiin perustuvia virtalutikoita myös jänniteulostulolla valmiina moduulina. 30A alkaa vaan olla ylärajoilla löytää ebaysta edullisia valmiita moduuleita, ainakin mittaustarkkuus voi olla heikompi. Tai voi käyttää jo mainittua shunttia. Hall-anturin signaaalipuoli ei ole galvaanisesti yhteydessä mitattavaan virtaan, joka voi tuoda jotain helpotusta suunnitteluun.
 
Hall-anturilla on vaikea päästä vaadittuun tarkkuuteen. Vaatii käytännössä shuntin ja hyvän instrumentointivahvistimen. Niitä löytyy ihan shunttikäyttöön tarkoitettuja. A/D muuntimen pitää olla vähintää 16 bittinen. Shuntin oltava sellaista materiaalia jonka resistanssi ei muutu lämpötilan mukaan tai muuten vaaditaan lisäksi lämpötilakompensointi. Ja voi olla että vaatii kompensoinnin jokatapauksessa.

Btw: Miksi tässä resistanssin mittauksessa vaaditaan noin suuri virta?
 
Hall-anturilla on vaikea päästä vaadittuun tarkkuuteen. Vaatii käytännössä shuntin ja hyvän instrumentointivahvistimen. Niitä löytyy ihan shunttikäyttöön tarkoitettuja. A/D muuntimen pitää olla vähintää 16 bittinen. Shuntin oltava sellaista materiaalia jonka resistanssi ei muutu lämpötilan mukaan tai muuten vaaditaan lisäksi lämpötilakompensointi. Ja voi olla että vaatii kompensoinnin jokatapauksessa.

Btw: Miksi tässä resistanssin mittauksessa vaaditaan noin suuri virta?

Ei tässä mittauksessa sitä virtaa vaaditakkaan! Toi 30A voi kulkea vaikka suoraan virtalähteeltä vastukselle! Haluja on siis lukea lämmitinelementi vastus tavalla tai toisella, mutta tarkasti (en mä edes tiedä onko toi 0.01 ohmia iso resoluutio)! Sekä monitoroida jännitettä. Kuinkas sitten toteutetaan toi jännitteen säätö niin että kuormassa jännite eipääse kyykkäämään kovin hirveästi halutusta arvosta.

Aparaattin siis olis tarkoitus toimia sähkörööki askartelluissa työkaluna. Ja kun nämä lämpöelementit (vastukset) pyörii tuolla 0.7-0.15 ohmin välillä nii ampeerit nyt nousee melkolailla väkisinkin 30A tuntumaan. esim 4.2v (simuloi täyttä 3.7v akkua) / 0.15 Ohmin vastuksella on jo 28A ja tämä skenario on (ainakin omalla käytöllö) se suuri virtaisin tapaus.


Ja tosiaan tämä projekti on aivan ajatuksen tasolla vasta. Vastaavia kaupallisia laitteita saa ihan muutamalla kympillä, mutta tälläinen projekti olisi omiaan ruokkimaan minun "pelle peloton" luonnetta! :joy: Sähköstä tai varsinkaan komponenteista en paljoa ymmärrä, muuta koodata osaan ja siksi kuvittelin toteuttavani tämän arduinolla!

Kuva ja speksit kaupallisesta laitteesta.
upload_2018-7-4_21-33-28.png
 
Muistin, että tarkkuusvaatimus (eri asia kuin resoluutio) oli 0,001 ohm. Sen mukaan kirjoitin tuon edellisen postauksen.

Onko tarkoitus siis mitata lämmitysvastuksen resistanssi kuumana? Jos kylmänä mittaus riittää niin mittausvirtaa toi pudottaa tuhannesosaan. Vastuksen kuumaresistanssin voi myös laskea kylmänä mittaamisen jälkeen jos vastuslangan materiaali on tiedossa.
 
Muistin, että tarkkuusvaatimus (eri asia kuin resoluutio) oli 0,001 ohm. Sen mukaan kirjoitin tuon edellisen postauksen.

Onko tarkoitus siis mitata lämmitysvastuksen resistanssi kuumana? Jos kylmänä mittaus riittää niin mittausvirtaa toi pudottaa tuhannesosaan. Vastuksen kuumaresistanssin voi myös laskea kylmänä mittaamisen jälkeen jos langan materiaali on tiedossa.

Kylmä riittää tässävaiheessa.
 
Kylmä riittää tässävaiheessa.

No sitten homma on aika helppo. Syötät virtaa (vaikka 100mA) vastukseen vakiovirtalähteestä ja mittaat jännitehäviön vastuksen yli. Jännitemittaus pitää tehdä nelijohtimisesti eli niin, että tuot virtalähteestä johdot vastuksen päihin ja jännitemittaus vielä erillisillä johdoilla vastuksen päihin. Näin vastukseen tulee neljä johtoa. Tämä keino estää ettei virransyöttöjohtojen resistanssit sotke mittausta. Jos vakiovirtalähteestä (virtaregulaattori) tekee tarkan, niin arduinon ei tarvitse mitata virtaa lainkaan, koska se on tiedossa. A/D muuntimeksi vaikka ADS1115 jossa on ohjelmoitava jännitevahvistin. Täytyy jotenkin varmistaa ettei A/D muuntimelle tule liian suurta jännitettä kun mitattava vastus irroitetaan piiristä. Virtaregun lähtöön voi laittaa vaikka diodin rajoittamaan jännite noin 0,5 volttiin. Virtaregulaattoriin löytynee paljon ohjeita googlesta.

4 wire measurement - Google-haku

Four-terminal sensing - Wikipedia

precision current regulator - Google-haku
 
Viimeksi muokattu:
No sitten homma on aika helppo. Syötät virtaa (vaikka 100mA) vastukseen vakiovirtalähteestä ja mittaat jännitehäviön vastuksen yli. Jännitemittaus pitää tehdä nelijohtimisesti eli niin, että tuot virtalähteestä johdot vastuksen päihin ja jännitemittaus vielä erillisillä johdoilla vastuksen päihin. Näin vastukseen tulee neljä johtoa. Tämä keino estää ettei virransyöttöjohtojen resistanssit sotke mittausta. Jos vakiovirtalähteestä (virtaregulaattori) tekee tarkan, niin arduinon ei tarvitse mitata virtaa lainkaan, koska se on tiedossa. A/D muuntimeksi vaikka ADS1115 jossa on ohjelmoitava jännitevahvistin. Täytyy jotenkin varmistaa ettei A/D muuntimelle tule liian suurta jännitettä kun mitattava vastus irroitetaan piiristä. Virtaregun lähtöön voi laittaa vaikka diodin rajoittamaan jännite noin 0,5 volttiin. Virtaregulaattoriin löytynee paljon ohjeita googlesta.

4 wire measurement - Google-haku

Four-terminal sensing - Wikipedia

precision current regulator - Google-haku

Toi four-terminal olikin jotenkin tuttu idea.
Mutta kuinkas sitten tollanen jännite regulointi kannattaa toteuttaa? Haluan siis säädettävän jännitteen ja arduino voisi vahtia ettei esim 200w teho ylity. Jos kuvitellaan vielä että haluaisin laitteen ottavan virtaa esim. Kahdesta 3.6v akusta vs 12v virtalähde. Aina olen näiden vehkeiden kanssa ihmetellyt että miten helvetissä yhdestä akusta taijotaa 100w teho. :joy:
 
Toi four-terminal olikin jotenkin tuttu idea.
Mutta kuinkas sitten tollanen jännite regulointi kannattaa toteuttaa? Haluan siis säädettävän jännitteen ja arduino voisi vahtia ettei esim 200w teho ylity. Jos kuvitellaan vielä että haluaisin laitteen ottavan virtaa esim. Kahdesta 3.6v akusta vs 12v virtalähde. Aina olen näiden vehkeiden kanssa ihmetellyt että miten helvetissä yhdestä akusta taijotaa 100w teho. :joy:


Et tarvitse jänniteregulaattoria vaan virtaregulaattorin. Se pitää virran vakiona kuorman resistanssista riippumatta. Esim. 0,1 ampeeria riittää hyvin. Tuolla virralla kun mittaat 0.15 ohmin vastusta, niin teho on 0,0015 wattia. Lue uudelleen edellinen postaukseni.
 
Ja tuollainen 2-0,1A virta on helppo tehdä kun mikään paikka ei lämpene sikana. Joku led virtalähde voisi käydä. Siis nimenomaan vakioVIRTAlähde jota käytetään led valoissa. Juuri muita kuin led virtalähteitä ei netissä nykyään näykään.
Jos haluaa itse rakentaa niin suomenkielellä löytyy led virtalähteitä mutta englanniksi löytyy vakiovirtaa kyllä. Googlaa Constant current source.
 
Ainakin mainostavat että tuo olisi ihan se aito, kuvankin perusteella vaikuttaisi ihan olevan lähes identtinen, huomaa että pinninumeroissa osa kiinaksi printissä ja englanniksi headerin kyljessä. Jos on aito niin ei ainakaan eurooppalaisella printillä valmistettu. Ei vielä tarkoita etteikö toimisi täysin identtisesti.

Arduino on avoin laitteisto, eli kuka tahansa saa näitä valmistaa. Siinä mielessä ei voi sanoa piraatiksi piirilevyn puolesta, vaikka olisi eri värinen. Tosin joissain ihan halvimmissa voi hinnasta päätellä että itse suoritin on joku kiinankopio tai kierrätyskamaa. Mitä olen halpisvalmistajien versioita katsellut niin eroa on juotosjäljessä ja liittimiet on välillä miten sattuu. Arduinon itse valmistamissa liittimet olleet aina suorassa. Itsellä vain Arduino Uno ja kiinalaisten versio Megasta, molemmat toimineet hyvin. Tosin kiinaisten Megaan sai RF-boardin pinnejä taivutella että sai menemään paikalleen.

Todennäköisesti suurimmalla osalla toimivat identtisesti. Radioamatööreiltä olen kuullut että kiinalaista versiota ei kannata käyttää radiolähettimen läheisyydessä, kiinalaisen Arduinon sähköisissä ominaisuuksissa on suuremmat toleranssit, joten ihan joka paikassa nuo ei toimi niin luotettavasti kuin alkuperäisessä Arduinossa. Hyvin kuitenkin toimii 433MHz RF-shieldi kiinalaisten Megassa kun lähetystehot noilla vapailla taajuuksilla on tosi pienet. Lämpötilan vaihtelut tulee toisena mieleen, jos tulee ulkokäyttöön, joku huono juotos voi temppuilla jos sattuu kiinanlotossa se huono yksilö.
 
Kysynpä nyt kuitenki

A. Onko nämä aliexpressin arduinot jotain feikkipaskaa? Esim. Arduino Starter Kit for arduino Uno R3 9G Server /arduino sensor /1602 LCD / jumper Wire/ UNO R3/Resistor-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group

B. Toimiiko ne siitä huolimatta identtisesti aitojen kanssa?

Huonointa laatua tuossa sarjassa on todennäköisesti nuo (du pont) hyppylangat. Ne on kuparoitua rautalankaa. Pitää ottaa huomioon jos tekee vaikka kompassia. Yllättävän hyvin nuo kiina-arduinot toimii. En ole saanut yhtään toimimatonta.
 
Huonointa laatua tuossa sarjassa on todennäköisesti nuo (du pont) hyppylangat. Ne on kuparoitua rautalankaa. Pitää ottaa huomioon jos tekee vaikka kompassia. Yllättävän hyvin nuo kiina-arduinot toimii. En ole saanut yhtään toimimatonta.

Okei, no ehkä ostan vaan koneen ja sitten muut kilkkeet mitä tarviin nii erikseen
 
Mullakin on aliexpressin halpis-arduinot toimineet ihan siinä missä orkkiskin, mutta on niissä joskus ihan päällenäkyviä eroja, esimerkiksi muutaman olen ostanut joissa ei ole pinnejä juotettu ollenkaan, vaan mukana tuli irtopinnit. Mä tosin tarkoituksella hain tuollaista, koska siihen reikään on paljon helpompi juottaa johtoja kiinni kuin pinniin.

Siis esim kuten tuossa:
1pcs/lot Nano Atmega168 controller compatible for arduino nano Atmega168P CH340 CH340C replace CH340G USB driver NO CABLE-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group
 

Statistiikka

Viestiketjuista
262 661
Viestejä
4 561 323
Jäsenet
75 005
Uusin jäsen
laaseri-erkki

Hinta.fi

Back
Ylös Bottom