Efter arbetet idag blev det en snabb sväng inom biltema för att köpa en tio-liters hink med lock samt lite slang som kan transportera vatten. Jag passade även på att köpa mig en annan pump på biltema, den som nämnts i ett utav de första inläggen gällande mitt blomsterprojekt.
Alltså:
- 362772 – Lock till 10L hink 9,90kr
- 362770 – 10L hink 14,90kr
- 15331 – Vattenslang 10Mx9mm 36,90
- 25980 – Pentry-pump 79,90
Totalt: 142,40kr
Efter det bar det hem och testa hur fort jag tömde mina tio liter och resultatet blev prick 100 sekunder att pumpa vattnet till den nivå att den nästan torrkörts.
Detta ger mig lite modifikation i mitt program som ska ligga i PIC:en
#include <pic16f690.h>
typedef unsigned int word;
word at 0x2007 __CONFIG = (_INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF & _BOR_OFF & _PWRTE_ON & _MCLRE_OFF & _IESO_OFF & _FCMEN_OFF);
void delay_ms(long ms)
{
long i;
while (ms--)
for (i=0; i<=50; i++) //50 iterations is _basically_ 1 ms.
;
}
unsigned int pumpint=0; //just an int for loops..
unsigned int totalpumpms = 0; //A counter for how many ms the pump has been running
unsigned static int maxpumpms = 100000; //Change this if you are using a slower/faster pump.
void main () {
TRISC = 0x00; /* PORTC, All outputs */
TRISA4 = TRUE; /* RA4 input */
while(1)
{
//Start pumping water, if RA3 isn't activated.
//Wait for the breaking SW1
if(RA3 == false && totalpumpms < maxpumpms)
{
while(1)
{
if(RA3) //If(ra3) i used since while(ra3) doesn't seem to work as good with sdcc compiler.
{
break;
}
PORTC=0x0f;
//As an extra marker, never pump for more than 5 secs.
delay_ms(1);
totalpumpms++; //Add to the total pumpmscounter.
if(pumpint >= 5000) //Loop until 5000ms == 5secs is reached.
{
pumpint = 0;
break;
}
pumpint++;
}
}
//Pumping done. Wait 15 minutes
PORTC=0x00; //Close all outputs
//Reset button must work within this time. Don't sleep for a whole 15 mins, but keep polling.
while(pumpint <= 90000) //15 min == 900000ms. We're polling each 10ms.
{
if(RA2) //RA2 is the reset switch
{
totalpumpms = 0;
pumpint = 0;
}
pumpint++;
delay_ms(10)
}
}
}
Jag har inte verifierat koden än, men jag tror det skall fungera
. Skall testa det imorgon, och i helgen ska jag göra mitt bästa för att bygga ihop den helt!
Jag vill ju ha den klar innan flytten, som förvisso inte är förräns i November, men jag vill gå vidare till mina andra små projekt.
Förresten, har ni någon bra bok ni kan rekommendera om embedded c-programmering. Vad man bör tänka på i minnesvägar och sådär? Jag hade uppskattat lite tips på denna fråga
.
Mvh
Marcus
Postad av marcus i Privat
Hade ett långt samtal med min käre far idag, som ansåg att inblandningen med fuktsensor/mäta ph-värdet/resistansen i jorden är inte någon särskilt bra teknik, eftersom att stavarna kommer oxidera inom en vecka, och därmed kräva att man polerar dem lite då och då, vilket inte känns roligt på ett ”automatiserat system”.
Det stora problemet med oxidering är att när det oxiderat tillräckligt länge kommer man inte få någon kontakt alls när man ska mäta, vilket innebär at maskinen kommer tro att där är torrt oavsett hur mycket vatten man pumpat in, vilket kan resultera i mycket vatten på golvet
.

En mikrobrytare, 25:- på Kjell.com
Ska man utesluta det får man ha en mikrobrytare i botten som är riktad neråt med en bit frigolit som lyfts upp med vattennivån, som en extra säkring på att man inte ”häller över kanten”. Och har man ändå satt en sådan kan man lika gärna utesluta jordfuktigheten och bara använda den väldigt nära botten på krukan för att inte få överskottsvatten, som gör att blomman surnar.
En annan sak vi kom fram till var att vattnet lätt surnar ifall man låter det stå still, så eventuell fläkt/motor kan (ej bekräftat om det går) behövas i tanken för att ”röra om” vattnet. Ska man se till att vattnet inte surnar måste man destillera det för att ta bort alla tillsatser/alger, vilket låter dyrt och tidskrävande. Alternativt att man häller i något medel som gör att det inte surnar, men det lär inte blommorna tåla. Tål inte blommor surt vatten?
Med andra ord blir det lite ändringar i planen. PIC-processorn behövs fortfarande, förstås för att mäta hur mycket vatten som pumpats upp för att se till att inte pumpen torrkörs (då går den sönder).
En annan ändring är att jag nog ska köpa en PIC18XXXX istället, då de kör på C-kod och inte Asembler.
Snabb ritning
