Default Green Orange
Marcus Follrud
Wish I had a slogan
RSS
  • Home Page Home
  • Cruel Chipmunk Productions
  • Om
  • Projects

Posts Tagged ‘vattna blommor’

Vattna blommorna – del 10

Open source, Programmering 2 Comments »

Nu händer det grejer.

Mitt program för min pic känns komplett. Har suttit och debuggat kod nu ikväll och kommit fram till att den lösningen jag postade nu senast inte var den bästa, för att vara helt ärlig.

Bland annat så verkar inte !RA# fungera riktigt i kompilatorn av någon anledning. Koden beter sig konstigt när detta händer. Eller har jag bara programmerat kasst?

Efter lite kodändringar fungerade det!

Koden ser ut såhär nu:

#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 */
  TRISA = 0x1f; /* RA1-RA4 input, RA>4 output */
  while(1)
  {
    pumpint = 0;
    //Start pumping water, if RA3 isn't activated.
    if(RA3 || totalpumpms >= maxpumpms)
    {
		//Do nothing..
		delay_ms(1);
    }
    else
    {

      while(pumpint < 5000) //Max pumptime is 5 secs.
      {
        if(RA3) //If(ra3) is used since while(ra3) doesn't seem to work as good with sdcc compiler.
        {
          break;
        }
	else if (totalpumpms >= maxpumpms)
	{
		break;
	}
        PORTC=0x0f;
        //As an extra marker, never pump for more than 5 secs.
        delay_ms(1);
		totalpumpms++; //Add to the total pumpmscounter.
        pumpint++; //just for this loop.
      }
	  pumpint = 0;
    }
    //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 100ms.
    {
      if(RA4) //RA4 is the reset switch
      {
		totalpumpms = 0;
		break;
		//at this point, we have resetted the counter, and let the water start pumping again.
      }
      pumpint++;
      delay_ms(100);
    }
  }
}

För närvarande använder jag Windows 7 (ja, jag vet, det är inte omtyckt, men faktum är att win börjar konkurrera med kde och linux..) och mitt debuggingprogram blev ”Real Pic Simulator” som utförde sitt arbete mycket väl! Programmet är dock inte gratis, men en 30-dagars testversion gick att ladda ner. Och mer tid behöver jag nog inte :-) .

Som open source entusiast skulle jag kört gpsim som är det naturliga och självklara valet om man tycker om öppen mjukvara men jag tyckte inte att jag hade lust med att mecka conf-filer och tillägg för att få just min pic att stödjas. RPS fick funka ikväll, vilket det gjorde!

Nu kan jag lugnt slappna av resten av kvällen och njuta av mitt arbete :) .

Imorgon blir det att kolla nya möbler och liknande, då vår flytt har ändrats från 1:a November till 1:a Oktober/Mitten på September.

Ha en god afton. Själv Njuter jag med lite jamaicansk öl. Det är ju inne med Jamaica nu :)
/Marcus


augusti 21st, 2009  
Tags: 16f690, blommor, gpsim, pic, pic16f690, real pic simulator, sdcc, vat, vattna blommor



Vattna blommorna – Del 2

Privat, Programmering 0 Comment »

Hade lite mer funderingar idag under lunchen på jobb. Funderingar som rörde ifall jag borde ha någon typ av sensor som känner av hur fuktig jorden är. Och automatisera det ännu mer än vad en timerbaserad är. Förvisso är det enklare att göra en tidsbaserad som vattnar ett par gånger om dagen. Men det känns inte lika kul, eller hur?

Alternativen är att sänka en fuktsensor i en håla i jorden för att mäta luftfuktigheten. Eller att använda sig av två metallstänger som försöker ”nå” varandra genom jorden, och därefter använda motståndet i jorden som mätbarhet (högre motstånd, mindre vatten).

Jag har ingen aning om alternativ nummer ett fungerar över huvudtaget så jag antar att det får blir alternativ nummer två.

Så. Kollar vi kostnader:

  • Pump, 79,90
  • Pic processor PIC16F886 49:-
  • Experimentkort 45:-
  • Kabel för kontakt.. Vet inte vad de heter UNKNOWN:- TIPSA GÄRNA
  • Plastdunk med lock, 10 liter, 45:-
  • Vävslang, 9mm 15:-/st
  • Tryckströmbrytare. 2X a 19:-
  • Röd diod för påfyllning av vatten 39:- för fem

Det borde räcka för tillfället. Projektet landar (just nu) på 308:-
Det blir att köpa dessa delar nästa lön (just nu är det lite tajt) :>. Ska bli ett roligt projekt.

Hur hade du löst problemet? Vad hade du köpt?

Trevlig kväll
/marcus


juli 14th, 2009  
Tags: blommor, pic, Programmering, vatten, vattna blommor



  • Kategorier

    • Linux
    • monotouch
    • Open source
    • Planet
    • Privat
    • Programmering
    • Spel
  • Arkiv

    • januari 2012
    • september 2011
    • augusti 2011
    • januari 2010
    • december 2009
    • november 2009
    • oktober 2009
    • september 2009
    • augusti 2009
    • juli 2009
  • Etiketter

    2.6.30 16f690 Andjelka ANSI C apparmor apple axis biltema blommor c# curl debian despotify django drupal inaktivitet iphone kde Linux linux mint liseberg mono monotouch novell Open source php pic pic16f690 plasma plasmoid Programmering pump pykde pyqt python qt sdcc sommarstuga spotify spytify vatten vattna blommor virtualbox wordpress youtube
Copyright © 2012 Marcus Follrud
XHTML CSS Logga in