Op mijn werk ben ik aan het zoeken naar een manier om op een betaalbare manier een temperatuur meetwand te maken. Uiteindelijk willen we deze kunnen aflezen op onze pc.
Aangezien ik af en toe wat kleine dingen met de Arduino gedaan heb leek het ons een goed idee om hier de mogelijkheden van te bekijken.
De temperatuurwand willen we maken uit 80 k-type temperatuur sensoren omdat we werken met hoge temperaturen. Nu heb ik een digitale converter gevonden die de analoge signalen van de k-type temp sensoren kan omzetten naar een digitaal singaal. K-Type Thermocouple met digitale converter
Nu was mijn grote vraag hoe ik deze 80 digitale signalen kan uitlezen op een Arduino?
Ik heb wat gezien van multiplexers maar naar mijn idee is dit juist voor analoge signalen. TCA9548A I2C Multiplexer
Ben ik met deze multiplexer op de juiste weg of moet ik heel anders kijken?
Kijk eens naar deze YouTube video waar I2C zeer goed wordt uitgelegd.
Ik ben wel benieuwd hoe jullie deze data gaan visualiseren. Ik heb op een Staalgieter gewerkt en daar gebruikten we ook zo een systeem.
Wil je me op de hoogte houden?
max14661 is een prima analog switch zowel I2C als SPI.
daarachter kun je dan een 1 max6675 hangen.
kijk maar eens op maxim voor schakelingen.
en ja dat kan heel goed, een paar pinnen op I2C zetten kan in software waardoor je een aantal kanalen hebt .
het hoeft niet snel, dus kan allemaal achter elkaar.
als je alle bedrading een beetje bij elkaar kunt houden (de analoge signalen zijn zwak, en moeten dus via Thermo kabel lopen tot aan de omzetter.
kijk ook eens naar 4/20 mA omzetters van jouw K signaal, dat is misschien een goedkopere oplossing. want 20 mA op een arduino is geen probleem, met een simpele weerstand maak je er 5 Volt analoog signaal van en dat kun je met meerdere goedkope arduinos binnenhalen.
Voor het display kun je dan of HEX displays gebruiken, of met een laser op een wand.
Gewoon een LVDS driver gebruiken en twisted pair CAT5 kabel voor grotere afstanden.
Als je er een aantal kan clusteren dan zou je een netwerk van controllers kunnen maken die eerst het voorwerk doen om de sensoren uit te lezen. Daarna laat je een centrale controller de individuele controllers uitlezen voor de data van een sub cluster van sensoren. Dat scheelt weer in de bekabeling en de load op een enkele controller.
Met de PC kan je dan volstaan met een eenvoudige message transfer die bijvoorbeeld in een keer de data van alle 80 sensoren binnen krijgt.
Natuurlijk bedankt voor alle snelle reacties en behulpzaamheid.
Met deze info kom ik zeker wat verder maar zoals ik al zei heb ik wel eens wat kleine dingen gedaan met de Arduino maar word nu een beetje overrompeld met info.
Ik denk dat het handig is om wat extra info te geven over ons idee.
We zaten te denken om ter grote van een europallet (800 x 1200) een meetwand/vloer te maken.
In die meetwand/vloer willen we ongeveer 80 sensoren kwijt.
Temperaturen zullen variabel zijn van 15 t/m 200 graden Celsius.
De precisie van de waardes willen we graag binnen 1 graden Celsius houden.
Een wens is dat de thermokoppels te vervangen zijn indien er een stuk is.
Wat ik nu een beetje begrijp is dat ik zowel I2C als SPI kan gebruiken.
Ik heb filmpjes gekeken van zowel I2C als SPI maar bij SPI heb ik zover ik begrijp voor elk thermokoppel een pin nodig.
Aangezien er geen 80 pins op een arduino zitten lijkt me dit geen optie toch?
Wat mij nu het handigste lijkt is om I2C te gebruiken.
Aangezien de thermokoppels ook een draad hebben zal de lengte van het draad die het I2C signaal doorgeven niet zo lang hoeven zijn.
Nou ik ben bank dat je met I2C ook uitdaging hebt. I2C ic's hebben een intern adres. En zal je dus eveneens iets moeten doen om dat te decoderen. bij SPI zou je iets dergelijks kunnen doen door bijv. Met een serietje 74HC(t)595's in serie te zetten (je hebt dan 80 outputs nodig).
Een SPI apparaat heeft (sowieso een /CS pin). Door een OR gate stuur je de pin van de 595 (de te selecteerde pin LAAG, de rest HOOG) EN een geinverteerde (gewoon met een BC547 oid) /CS van de Arduino. Op die manier wordt de juiste thermocouple aangestuurd. Zo niet gaat een SPI device in High impedance state en belast de SPI bus verder niet.
Ik gebruik een vergelijkbaar iets met deze 1Mb memory boards (64Mb nu in ontwikkeling) voor de Arduino. Alleen gebruik ik een IO expander ipv de 595's. Op die manier kan ik 8 SPI ic's aansturen met een enkele /CS pin.
Eigenlijk zou je de draden van de thermocouple meteen op de pinnen van de MAX6675 moeten vastmaken voor de maximale nauwkeurigheid. Die module gaat ook prima, zolang de MAX6675 chip dezelfde temperatuur heeft als het schroefblokje waar je de thermocouple in vast maakt.
De DS18B20 kan tot ruim 100 graden. Dat is helaas te weinig.
Om slechts één MAX6675 te gebruiken en alle thermocouples te schakelen met relais kan alleen werken als alles goed contact maakt en de temperatuur van alle relais precies hetzelfde is. Als je een snel resultaat wilt, dan is dit snel te maken.
Om met een Arduino 80 sensoren lezen is extra hardware voor nodig, daar schreven de anderen al over. Ken je iemand vinden die je daarbij helpt ?
Hoe ga je die gegevens naar de computer sturen ?
Je kunt het misschien opsplitsen in modules. Bijvoorbeeld 10 Arduino boards die via een USB hub met de computer zijn verbonden.
Ik neem aan dat je de gegevens realtime wilt zien ? Als dat niet zo is, dan kun je alle gegevens op een SD kaartje zetten.
De draden waarover de digitalen signalen lopen kunnen maar kort zijn.
Komt het Arduino board achter de meetwand ? Of heb je hele lange draden aan de thermocouples zitten ? Kun je misschien een schets maken met alle draden en de afstanden ?
Voor de prijs van alle losse onderdelen, kun je wellicht beter op zoek gaan naar een datalogger. Bekijk eens een Yoogawa GP20 met 4 input modules, ja, kost wat, maar je kan 80 kanalen uitlezen.
Koepel:
1.Om met een Arduino 80 sensoren lezen is extra hardware voor nodig, daar schreven de anderen al over. Ken je iemand vinden die je daarbij helpt ?
2.Hoe ga je die gegevens naar de computer sturen ?
3.Je kunt het misschien opsplitsen in modules. Bijvoorbeeld 10 Arduino boards die via een USB hub met de computer zijn verbonden.
4.Ik neem aan dat je de gegevens realtime wilt zien ? Als dat niet zo is, dan kun je alle gegevens op een SD kaartje zetten.
5.De draden waarover de digitalen signalen lopen kunnen maar kort zijn.
Komt het Arduino board achter de meetwand ? Of heb je hele lange draden aan de thermocouples zitten ? Kun je misschien een schets maken met alle draden en de afstanden ?
@koepel
De vragen heb ik genummerd en beantwoord ze even stuk voor stuk.
1.Ik heb inderdaad iemand die me kan helpen bij complexe vragen maar in principe zal ik het meest doen.
2.Ik was van plan het via een usb naar mijn computer te sturen. Graag willen we het ook live kunnen uitlezen.
3.Daarvoor heb ik de I2C Multiplexer (TCA9548A) om meerdere I2C singalen samen te voegen.
4. We willen het inderdaad graag real time kunnen inzien.
5. De thermocouples hebben inderdaad nog lange draden. Ik had al vernomen dat het niet slim is om lange afstanden te overbruggen met I2C kabels.
Ik heb mijn vragen ook al een beetje neer gelegd bij iemand die meer gespecialiseerd is.
Hij rade me aan om analoge sensoren te gebruiken die je vervolgens analoog versterkt.
Om mijn temperaturen visueel te krijgen hebben we 2 opties.
We weten een zzp'er die voor ons een programmatje zou kunnen maken.
Een klasgenoot van me wees mij op de software van processing.org
Dit zag er interesant uit, iemand enige ervaringen met dit programma?
maak een paar schemas en zet er een prijs op voor je ontwerp/complexiteit/haalbaarheid etc.
op een forum krijg je meestal verschillende antwoorden die dus allemaal kunnen.
USB naar een computer is goed mogelijk, alleen hou je aan de afstand van 1 meter.
I2C is makkelijk, maar is relatief kostbaar dus even optellen
Thermocouples mogen best wel lange draden hebben, je moet zorgen dat er heel weinig stroom loopt, en je zult een omvormer moeten gebruiken.
processing werkt hetzelfde als de arduino doet maar is vooral bedoeld om de PC te bedienen maar is erg handig als je indezelfde taal wilt blijven.
analoge signalen kun je versterken echter is het veel handiger om deze in een kast om te zetten naar 4/20mA en die dan analoog inlezen.
kijik ook eens naar 80 displays bij elkaar die het signaal direct omzetten en displayen.
Ik heb een een schema'tje gemaakt waarvan ik hoop dat die een beetje duidelijk is.
I.p.v. alles te tekenen heb ik er voor gekozen om het wat compacter te houden.
in principe moet ik dit x 8 doen
Het is zeker niet perfect maar ik hoop stapje voor stapje wat concreter te worden.
Wat ik dus nu verwacht aan te schaffen is:
-80 thermocouples
-80 signaal versterkers ( Nog onbekend welke)
-10 Multiplexers (Analoog - I2C) ( Nog onbekend welke)
-2 Multiplexers (I2C - I2C) (Bijv. TCA9548A)
ja mooi bedacht, het zou ook nog best werken ook, je kunt nu ook nog een scherm erbijzetten.
als je van kanaal overschakelt wel telkens een begin en end aan de I2C zenden.
en vooral die I2C bij elkaar houden.
je hebt ook nog een kanaal nodig wat de temperatuur is van waar alle draden bij elkaar komen. vaak gebeurt dat met een Pt100 met elektronica
@shooter, daar had ik niet aan gedacht, om een Pt100 te gebruiken. Dat lijkt me inderdaad eenvoudiger en nauwkeuriger voor het bereik van 0 tot 200°C.
Reageert die misschien iets langzamer ?
@stankm, een thermocouple met zomaar een versterker zie ik niet zitten. Dan ben je de nauwkeurigheid kwijt omdat er geen cold junction compensation is.
Voor een Pt100 is een ander schema nodig. Dan ga je de weerstand meten.
Je zult toch echt een CJC moeten gebruiken anders heeft het geheel weinig zin.
je kunt trouwens ook een Pt100 naar 4/20 mA omzetter gebruiken dan krijg je dus 80 van die mA signalen en die kun je goed omzetten naar analoge ingangen.
en ja reageert langzamer maar nog steeds binnen 1 seconde. en een couple in de kast kan ook trouwens ook al kun je dan nooit precies de temp meten.