Ad
Energibutiken.se smarta varor på nätet, leverans till dörren
Besök oss idag
Annonsera i Värmepumpsforum, klicka här för att ställa e-postfråga och få mer info.
140x140vpforum-11.gif
kontakta oss för pris!

Skriv svar

Varning: Det har inte skrivits nya inlägg i detta ämne på 50 dagar.
Om du inte är säker på att du faktiskt vill svara i det här ämnet, så bör du överväga att istället starta ett nytt ämne.
Namn:
E-post:
Ämne:
Inläggsikon:

Verifiering:
This box must be left blank:

Skriv in bokstäverna som syns på bilden
Lyssna på bokstäverna muntligt / Begär en ny bild

Skriv in bokstäverna som syns på bilden:
Skriv in de tre sista bokstäverna i alfabetet:
Hur många var de älva dragspelarna (siffror):

För att slippa svara på kontrollfrågor, registrera dig här!


Ämnessammanfattning

Skrivet av: rgx107
« skrivet: 03 mars 2013, 10:04:11 »

Är det någon som har en länk till en vettig öppna/stäng pi regulator för arduino.
Skulle kanske kunna programmera en själv men skulle gärna uppskatta att titta på en.

För att göra en enkel regulator som reglerar inom 2° funderar jag såhär
Läs av temp
Läs av börvärde.
Om börvärde > temp +1, slå till relä1 1sek x P x temperaturdifferans.
Om börvärde < temp -1, slå till relä2 1sek x P x temperaturdifferans
Vänta (I) sekunder.

Tänker jag fel?
Om man ska vara petig så beskriver du en ren I-regulator, som i sig är instabil. Hysteresen kan göra den stabil. Om du vill göra en P-reglering behöver du på något sätt hålla reda på var shunten är (antar att det är shuntstyrning vi talar om) och varje cykel flytta shunten till det nya, beräknade läget, oavsett var den är. Det bästa vore att ha en vinkelgivare på shunten. Alternativt skulle man kunna köra shunten till ändläget nån gång per dygn och räkna därifrån.

Personligen tror jag inte det ger så mycket att förbättra shuntstyrningen eftersom man ju mäter framledningen och kan reglera den ganska bra med en vanlig ramp och hysteres. Det intressanta skulle i mitt fall vara lite mer intelligent reglering av framledningen.
Skrivet av: 240GLT
« skrivet: 02 mars 2013, 23:46:51 »

Jag har inte provkört den själv, men det finns tydligen PID-regulatorer färdiga för Arduino. Bara sätt derivata-delen D till 0 så blir den inaktiverad, och kvar har du en PI-regulator.

Här är ett exempel för att driva ett relä:
http://playground.arduino.cc//Code/PIDLibraryRelayOutputExample
Skrivet av: Berrkan
« skrivet: 20 januari 2013, 10:17:04 »

Är det någon som har en länk till en vettig öppna/stäng pi regulator för arduino.
Skulle kanske kunna programmera en själv men skulle gärna uppskatta att titta på en.

För att göra en enkel regulator som reglerar inom 2° funderar jag såhär
Läs av temp
Läs av börvärde.
Om börvärde > temp +1, slå till relä1 1sek x P x temperaturdifferans.
Om börvärde < temp -1, slå till relä2 1sek x P x temperaturdifferans
Vänta (I) sekunder.

Tänker jag fel?
Skrivet av: BosseBus
« skrivet: 04 juli 2012, 21:14:09 »

Ja det var ju rätt logiskt...det fungerade.. tummenupp
Mycket att lära... får ta en bit i taget...
Skrivet av: gossen
« skrivet: 04 juli 2012, 20:55:34 »

Om du vill att number skall nollas och sedan börja om igen kan du sätta number=0; efter delay(10000);
Jag tror att du igentligen skall kolla lite på for loop och/eller while loop för att få en mindre och tydligare(?) kod.

Nej, jag använder inte arduino själv men jag har programmerat en hel del AVR(som det sitter på arduino) i C.

Nästa gång jag skall göra något mindre hobbyprojekt kommer jag nog att köra på en arduino för man får väldigt mycket för pengarna som gör att det inte är värt att bygga eget från grunden(sen att programmeringssyntaxen är väldigt enkel och att man kan skriva även i C är en bonus:) ).

/G

Edit: Såg nu att du även ändrat till if (number  > 4) vilket är helt rätt, ett annat alternativ är if (number  >= 4) som är sant ifall number är större än eller lika med 4.
Skrivet av: BosseBus
« skrivet: 04 juli 2012, 20:08:44 »

Ändrade visst lite mer..
Serial.println(++number);// print number: la till ++
  delay(1); 
  if (number  > 4)            // number Ändrade här också
 
  {
  digitalWrite(led, HIGH);    // On led
  delay(10000);     
}

else

  delay(1); 
 
}
Så nu blinkar den 4 ggr.
sedan in i den andra lopen...
Skrivet av: BosseBus
« skrivet: 04 juli 2012, 19:55:45 »

Nej det gör den inte...
Lade till ++ på denna kod
Serial.println(++number);// print number:
Då visar den rätt och koden verkar fungera...
Man kan inte nollställa  "number" ??
Grejar du något själv med Arduino? :o
Skrivet av: gossen
« skrivet: 04 juli 2012, 19:40:35 »

Ser inte riktigt vad som är det felet du säger men du gör en eveighetsloop som aldrig nollas och kommer att fortsätta räkna upp tills räknaren slår runt. Detta borde du dock se i utskriften.
Lyser leden någonsin länge?

/G
Skrivet av: BosseBus
« skrivet: 04 juli 2012, 18:48:56 »

Provar å ser om det är några vakna i detta ämne.
Tanken är att en led ska blinka 4 gånger
Räknas in i variabel "number" som ska börja på 0 och sen +1 osv. tills 4 är uppnådd, sedan lysa längre..
Sen försöker jag se vad som är i variabeln "number" med serial print...men det visar bara 0
Fel är det ju... kanske någon kan hjälpa till ? ::)
Kod:
int led = 11;// led 11
int number = (0);//Variabel

void setup() {               
  pinMode(led, OUTPUT);
Serial.begin(9600); 
}

void loop() {
   digitalWrite(led, HIGH);   // turn the LED on
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off
  delay(1000);               // wait for a second
  number +1;                 // + 
  Serial.println(number);// print number:
  delay(1); 
  if (number== 4)            // number
 
  {
  digitalWrite(led, HIGH);    // On led
    delay(10000);       
}
else

  delay(1); 
 
}
Skrivet av: Theander
« skrivet: 16 juni 2012, 19:51:05 »

Det som är riktigt kul med Arduino är att det finns så mycket expansionsmoduler att köpa till den.
Skrivet av: GDS-Jan
« skrivet: 16 juni 2012, 00:35:51 »

fast egentligen blir det 401-499 och 499-599 i och med att villkoren är större eller mindre än (><)

man kan använda större eller lika med <=
eller mindre eller lika med >=

Nu var du petig, han kan aldrig ställa in pot'en med den toleransen  ;)

Han vill lära sig hur man programmerar.

Har man 1 vilkor så skriver man det.

Har man 2 vilkor så skriver man de efter varandra om de är oberoende av varandra.
Rent praktisk så kommer de att ske samtidigt eftersom arduinon kör 16milj instruktioner i sekunden.

Första steget till programmering:
Saker som är oberoende av varandra kan man lägga i en följd.
Men saker som är beroende av ett resultat eller svar från en funktion kan inte utföras innan de har resultatet.

Logiskt eller?
Skrivet av: BosseBus
« skrivet: 15 juni 2012, 22:05:35 »

Ja jo det märks...att det blir så, försöker lära mig så det är bara test än..
Det här är kul. tummenupp
Skrivet av: Theander
« skrivet: 15 juni 2012, 21:53:54 »

ja den koden bör tända första dioden mellan 400-500 och sen mellan 500-600

fast egentligen blir det 401-499 och 499-599 i och med att villkoren är större eller mindre än (><)

man kan använda större eller lika med <=
eller mindre eller lika med >=
Skrivet av: BosseBus
« skrivet: 15 juni 2012, 21:48:31 »

2 lysdioder mellan 2 olika värden.
Blir så här då? Kanske onödigt skrivit..
Tanken är att jag ska läsa från olika brytare och ge dom olika motstånd, in på samma analoga ingång.
int analogPin = A0;    // pot
int led12 = 12; //led
int led11 = 11; //led
int pot_value = 0;   //Variabel

void setup() {
  pinMode(led12, OUTPUT); 
  pinMode(led11, OUTPUT); 
  Serial.begin(9600);
}

void loop() {
 
  int pot_value = analogRead(analogPin);// läs pot
 
 if ((pot_value > 400) && (pot_value < 500)) //ok kod gör det de ska
 
{
    digitalWrite(led11, HIGH);
}
else
{
     digitalWrite(led11, LOW);
}

if ((pot_value > 500) && (pot_value < 600)) //ok kod gör det de ska
 
{
    digitalWrite(led12, HIGH);
}
else
{
     digitalWrite(led12, LOW);
}
  Serial.println(pot_value);// print pot:
  delay(1);       
}
Skrivet av: Theander
« skrivet: 15 juni 2012, 21:44:37 »

Lycka till med resterande programmering.
Skrivet av: BosseBus
« skrivet: 15 juni 2012, 21:36:33 »

Oj då... nu fungerar det....
Tack... ett steg fram.... :)
Skrivet av: Theander
« skrivet: 15 juni 2012, 21:28:11 »

sorry slarvigt av mig

if ((pot_value > 400) && (pot_value < 500))

så här skall if satsen se ut
hade glömt parenteser samt vänt på > tecknen

Skrivet av: BosseBus
« skrivet: 15 juni 2012, 21:16:23 »

Tack för tipset... men jag famlar runt i mörkret...
Något är fel.. dontknow
int analogPin = A0;    // pot
int led = 12; //led
int pot_value = 0;   //Variabel

void setup() {
  pinMode(led, OUTPUT); 
  Serial.begin(9600);
}

void loop() {
 
  int pot_value = analogRead(analogPin);// läs pot

   
  if (pot_value < 400) && (pot_value > 500) //klagar här
 
{
    digitalWrite(led, HIGH);
}
else
{
     digitalWrite(led, LOW);
}
 
  Serial.println(pot_value);// print pot:
  delay(1);       
}
Skrivet av: Theander
« skrivet: 15 juni 2012, 20:17:52 »

Koden borde se ut ungefär så här
om du har en variabel pot_value

if (pot_value < 400) && (pot_value > 500)
{
    digitalWrite(led, HIGH);
}
else
{
     digitalWrite(led, LOW);
}

Koden kommer att tända LEDen om variabeln pot_value är större än 400 och mindre än 500

Hoppas det gick att förstå.
Skrivet av: BosseBus
« skrivet: 11 juni 2012, 23:44:34 »

Ja det låter ju bra...
Jag har kört ett antal enkla tutorials...
Det finns en seriel monitor som man kan se värden på...
Jag  försöker läsa värden på Analog ingång från en pot..
Sen tänkte jag att jag skulle få en led att lysa när värdet är mellan ex: 400-500
Men vet inte hur jag ska skriva...
Kanske kan återkomma...
Skrivet av: purjo__
« skrivet: 11 juni 2012, 23:18:43 »

Fråga på bara...

Som sagt var - Du får vara beredd på att du måste skriva en hel del kod. Det finns visserligen en del färdiga bibliotek att använda sig av, men om du skall komma nån vart så är det lika bra att börja med ett antal enkla tutorials och sen bygga vidare därifrån.
När du vet hur man tänder och släcker några dioder baserat på diverse ingångsvilkor och/eller timers så är det dags att börja med 'the real stuff'.
Sen kan det ju vara bra att ha nån sorts display så att man vet vad som försiggår också. Även där tillkommer det en del programmering för att tända och släcka rätt pixlar...
Skrivet av: GDS-Jan
« skrivet: 11 juni 2012, 23:14:28 »

Kanske uttryckte mig oklart men min fråga var:
 Är det någon här som kan förklara vad som är skillnaden på PLC och Arduino mikrodator.
Och det tror jag att jag har fått lite svar på.
Sen vore det ju trevligt med någon som kan programmera dessa, som man kunde fråga och få lite tips angående programmering.
Men det kanske var ett önsketänkande.
Det är inte lätt att börja från 0...

Att programmera är att ligga 1 steg före maskinen hela tiden.
Det är bara du som vet vad som skall göras.

Du måste tänka ut varje steg eller val som programmet måste göra och språket eller datorn (arduino, PLC, basicstamp, PC eller vad som helst) spelar ingen roll.

Om du nu har köpt arduino så råder jag dig att börja någonstans och få ett program att fungera så du börjar någonstans.
Skrivet av: BosseBus
« skrivet: 11 juni 2012, 22:59:44 »

Kanske uttryckte mig oklart men min fråga var:
 Är det någon här som kan förklara vad som är skillnaden på PLC och Arduino mikrodator.
Och det tror jag att jag har fått lite svar på.
Sen vore det ju trevligt med någon som kan programmera dessa, som man kunde fråga och få lite tips angående programmering.
Men det kanske var ett önsketänkande.
Det är inte lätt att börja från 0...
Skrivet av: GDS-Jan
« skrivet: 11 juni 2012, 22:39:32 »

GDS-Jan  ::)
Nä jag har inte förväntat mig att du ska lära mig att programmera...
Det är väl ingen större skillnad på att tända en lysdiod och att starta en kompressor eller en fläkt, så länge de inte drar mer än 40mA?

Det var inte jag som ville ha hjälp.
Jag kan programmera vad som helst på den och bygga dom gränssnitt som behövs.

De finns program till arduinon som genererar videosignal direkt, det gör du inte med en PLC eller en Mindstorms uC heller för den delen.

Jag förstår inte vad du vill?
Du har en dator med 32Kb programminne, 2Kb RAM och 1KB EEPROM.

Det går att göra nästan vad som helst.
Skrivet av: BosseBus
« skrivet: 11 juni 2012, 22:19:02 »

purjo__  :)
Ja då förstår jag lite som Lego mindstorm för barn. (PLC)
Jo den har ju som allt begränsningar... men kanske kan duga så länge..
Om jag nu klurar ut hur...
Har i och för sig hittat något program som verkar kunna göra det samma...om jag nu förstår mig på det...

GDS-Jan  ::)
Nä jag har inte förväntat mig att du ska lära mig att programmera...
Det är väl ingen större skillnad på att tända en lysdiod och att starta en kompressor eller en fläkt, så länge de inte drar mer än 40mA?
Skrivet av: purjo__
« skrivet: 11 juni 2012, 22:16:31 »

Det finns ju färdiga reläkort som löser det problemet...
Skrivet av: GDS-Jan
« skrivet: 11 juni 2012, 21:42:57 »

Fördelen med ett kommersiellt PLC-system är väl att det finns programmeringsverktyg där man aldrig behöver skriva en rad kod. Man ritar lite flödesdiagram på PC'n och bygger koden av det...
Nackdelen är att det kostar pengar...

En nackdel med Arduino Uno, som du visade bild på, är att den har ganska få in-/utgångar. Skall man kunna mäta mer än en handfull saker och styra lika mycket så tar det slut på anslutningar. Som tur är finns det Arduino Mega med betydligt fler anslutningar.

Sedan så måste man nivåanpassa själv.
Det är lite skillnad på att tända en lysdiod och att starta en kompressor eller en fläkt.
Skrivet av: purjo__
« skrivet: 11 juni 2012, 21:37:29 »

Fördelen med ett kommersiellt PLC-system är väl att det finns programmeringsverktyg där man aldrig behöver skriva en rad kod. Man ritar lite flödesdiagram på PC'n och bygger koden av det...
Nackdelen är att det kostar pengar...

En nackdel med Arduino Uno, som du visade bild på, är att den har ganska få in-/utgångar. Skall man kunna mäta mer än en handfull saker och styra lika mycket så tar det slut på anslutningar. Som tur är finns det Arduino Mega med betydligt fler anslutningar.
Skrivet av: GDS-Jan
« skrivet: 11 juni 2012, 21:10:30 »

PLC kanske då har redan typ reläer på utgångar?
Tack för länken men där har jag varit och på snart 1000 andra ställen känns det som.. ^-^i alla fall.
Men så fort jag försöker göra något eget så går det inte... :-\ i programmeringen.

Jag skall inte lära dig hur man programmerar men du måste analysera och beta ner vad du vill åstakomma och skapa kod efter det.

Om du tittar på blink-koden så är det absolut basic vad man kan göra.
Sätt portpin13 hög, vänta 1000ms, sätt portpin13 låg, vänta 1000ms och upprepa detta i oändlighet.
Det är basic och kommer att blinka lysdioden som sitter på pin13 på arduinon.

Sedan så bygger styrningar på konditionellt programflöde,
Om pin12 är hög så gör detta.
Om pin9 är låg sätt pin11 hög.
Om det är Tisdag sätt temperaturen till 20 °C.

Alla program fungerar så.
Skrivet av: BosseBus
« skrivet: 11 juni 2012, 20:56:22 »

PLC kanske då har redan typ reläer på utgångar?
Tack för länken men där har jag varit och på snart 1000 andra ställen känns det som.. ^-^i alla fall.
Men så fort jag försöker göra något eget så går det inte... :-\ i programmeringen.
Skrivet av: GDS-Jan
« skrivet: 11 juni 2012, 19:36:11 »

Vad jag har kunskap om så är det inte så mycket som skiljer en arduino eller annan uC från en PLC förutom programmeringsspråk och elektrisk nivå på I/O.

Fördelen med arduinon är den stora användarbasen med exempel och bibliotek för givare och hårdvara på internet som gör det lätt att få support.

Börja på www.arduino.cc som har massor med exempel och kod för allt möjligt.
 
Skrivet av: BosseBus
« skrivet: 11 juni 2012, 17:48:17 »

Är det någon här som kan förklara vad som är skillnaden på PLC och Arduino mikrodator. Är det samma sak? Någon påstår att PLC är bättre..
Jag har läst att flera här har snöat in på dessa små datorer, så ni kanske vet?

Nybliven ägare till ett antal Arduino mikrodator, som jag hade tänkt att kunna styra ditt å datt med så som ventilation,panna,spjäll,m.m.. men programmeringsspråket har jag svårt för.... ???
Så är det någon som kan komma med tips om något i detta ämne så är det välkommet också. :)

Annonser

Right Block

Vibrationsdämpare
Besök vår webshop, klicka här!
Energioffert.se
Energibutiken.se smarta varor på nätet, leverans till dörren
luftvärmepumpar, tillbehör, installationsmaterial, vi har allt!
Annonspriser

Online just nu!

Ad
Energibutiken.se smarta varor på nätet, leverans till dörren
Besök oss idag
Annonsera i Värmepumpsforum, klicka här för att ställa e-postfråga och få mer info.
140x140vpforum-11.gif
kontakta oss för pris!