Vinnaren i pepparkakshustävlingen!
2013-04-24, 00:23
  #1
Medlem
inevahs avatar
Hej!
Behöver akut hjälp med följande problem:

Variabeln "arvardet" kan anta alla värden mellan 0-15.
Jag har 2 spjäll som skall öppnas/stängas, beroende på dess värde 0 (stäng) eller 1 (öppna)

Då "arvardet" = 0 skall båda spjällen stängas, dvs värdet 0 skall skickas till båda.
Då "arvardet" = 1-6 skall spjall3 stängas och spjall2 öppnas.
Då "arvardet" = 6-11 skall spjall2 stängas, spjall3 öppnas.
Då "arvardet" = 11-15 skall båda spjällen öppnas.

Detta har jag lyckats lösa på något vänster, problemet är att jag vill lägga till en delay på 5 sekunder på signalen som stänger spjällen (nollan)!

Om vi tar arvardet = 8 som exempel, vilket innebär att spjall2 stängs och spjall3 öppnas. Programmet tar först reda på om arvardet är mellan intervallet 6-11. Svar = ja, vilket innebär att den skickar en etta till en AND-grind. AND-grinden skickar direkt en etta till spjall3 vilket innebär att denna öppnas, men samma AND-grind skickar även en etta till en timer (TON), som fördörjer signalen med 5 sekunder. Därefter skickas denna etta vidare till ett Move_E-block, som gör om ettan till en nolla, som därefter skickas vidare till spjall2 som ska stängas.

Problemet är att det inte riktigt funkar pga Move_E-blocket och läraren säger att det är något fel med min logik, kan dock inte komma på vad det kan vara vilket är anledningen till att jag vänder mig till er!

Bifogar en bild på själva blocken: http://img849.imageshack.us/img849/5960/87510501.png
OR-grinden längst till höger är självklart kopplad till spjall2.

Uppskattar all hjälp!
Citera
2013-04-24, 08:22
  #2
Medlem
Hur fungerar MOVE_E och TON? Vad gör deras ingångar/utgångar?
Citera
2013-04-24, 12:06
  #3
Medlem
inevahs avatar
Citat:
Ursprungligen postat av alef-noll
Hur fungerar MOVE_E och TON? Vad gör deras ingångar/utgångar?


Move_e gör om värdet till noll, ton fördröjer signalen med x sekunder!
Citera
2013-04-24, 13:00
  #4
Medlem
dMobergs avatar
Varför använder du Move_e? varför inte bara skicka in värdet?
Och vad är skillnaden mellan move_e och en inverterare?

EDIT: och du har lite fel värden. Det ska väl vara GE 11 på det nedersta blocket, inte GE 12?
__________________
Senast redigerad av dMoberg 2013-04-24 kl. 13:06.
Citera
2013-04-24, 13:35
  #5
Medlem
inevahs avatar
Citat:
Ursprungligen postat av dMoberg
Varför använder du Move_e? varför inte bara skicka in värdet?
Och vad är skillnaden mellan move_e och en inverterare?

EDIT: och du har lite fel värden. Det ska väl vara GE 11 på det nedersta blocket, inte GE 12?


Om jag använder inverterare istället för move_e så funkar det som jag vill om intervallet stämmer, vilket leder till att andgrinden skickar ut en etta som inverteras till en nolla och spjället stängs då. Men! När i tervallet inte stämmer skickar andgrinden ju ut en nolla, som därefter inverteras till en etta och som därefter öppnar spjället, det vill jag ju inte!

Inverteraren inverterar, move_e ger värdet 0 oberoende av vad det förra värdet var.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback