Got my Netduino project up and running but something doesn’t seem right to me
anyway
in
Method_6() and 7
I have
while (anyinputfor6.Read() == false && method_state_6 == true)
or should this be
while (anyinputfor6.Read() == true && method_state_6 == true)
I have a pull up resister wired into the input
I want it to do 6 and 7 on a closed switch
true true seems to work but the opposite way
and false true doesn’t seem to do anything
could be a wiring problem too
using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
namespace NetduinoApplication1
{
public class Program
{
public const int SecondMs = 1000;
public const int MinuteMs = 60 * SecondMs;
public const int HourMs = 60 * MinuteMs;
public const int DayMs = 24 * HourMs;
public const int WeekMs = 7 * DayMs;
static bool method_state_6, method_state_7;
static InputPort anyinputfor6 = new InputPort(Pins.GPIO_PIN_D0, false, Port.ResistorMode.Disabled);
static InputPort anyinputfor7 = new InputPort(Pins.GPIO_PIN_D1, false, Port.ResistorMode.Disabled);
static OutputPort ph = new OutputPort(Pins.GPIO_PIN_D2, true);
static OutputPort b = new OutputPort(Pins.GPIO_PIN_D3, true);
static OutputPort a = new OutputPort(Pins.GPIO_PIN_D4, true);
static OutputPort drain = new OutputPort(Pins.GPIO_PIN_D5, true);
static OutputPort solenoid = new OutputPort(Pins.GPIO_PIN_D6, true);
static OutputPort heater = new OutputPort(Pins.GPIO_PIN_D7, true);
static OutputPort phcontroller = new OutputPort(Pins.GPIO_PIN_D8, true);
static OutputPort tdscontrollerA = new OutputPort(Pins.GPIO_PIN_D9, true);
static OutputPort tdscontrollerB = new OutputPort(Pins.GPIO_PIN_D10, true);
static OutputPort led = new OutputPort(Pins.GPIO_PIN_D11, true);
public static void Main()
{
try
{
Thread led_proc = new Thread(new ThreadStart(turn_led));
led_proc.Start();
while (true)
{
method_state_6 = method_state_7 = true;
Method_1();
call2_5();
call6_8();
Method_10();
Thread.Sleep(10000);
}
}
catch
{
//Something has gone wrong; reset to a safe condition
}
}
static void turn_led() //turn led for 16 hr and off for 8hr in loop
{
while (true)
{
led.Write(false);
Thread.Sleep(HourMs * 12);
led.Write(true);
Thread.Sleep(HourMs * 12);
}
}
public static void call2_5()
{
Thread t2 = new Thread(new ThreadStart(Method_2));
t2.Start();
Thread t3 = new Thread(new ThreadStart(Method_3));
t3.Start();
Thread t4 = new Thread(new ThreadStart(Method_4));
t4.Start();
Thread t5 = new Thread(new ThreadStart(Method_5));
t5.Start();
#region Wait for finishing 2-5 methods
t2.Join();
t3.Join();
t4.Join();
t5.Join();
#endregion
}
static void call6_8()
{
Thread t6 = new Thread(new ThreadStart(Method_6));
t6.Start();
Thread t7 = new Thread(new ThreadStart(Method_7));
t7.Start();
Thread t9 = new Thread(new ThreadStart(Method_9));
t9.Start();
// wait for Method_9 finishing
t9.Join();
method_state_6 = method_state_7 = false;
}
public static void Method_1()
{
drain.Write(false);
Thread.Sleep(16 * MinuteMs);
drain.Write(true);
}
public static void Method_2()
{
solenoid.Write(false);
Thread.Sleep(16 * MinuteMs);
solenoid.Write(true);
}
public static void Method_3()
{
a.Write(false);
Thread.Sleep(182 * SecondMs);
a.Write(true);
}
public static void Method_4()
{
b.Write(false);
Thread.Sleep(100 * SecondMs);
b.Write(true);
}
public static void Method_5()
{
ph.Write(false);
Thread.Sleep(5 * SecondMs);
ph.Write(true);
}
public static void Method_6()
{
while (anyinputfor6.Read() == false && method_state_6 == true)
{
Thread.Sleep(5 * MinuteMs);
phcontroller.Write(false);
Thread.Sleep(3 * SecondMs);
phcontroller.Write(true);
}
}
public static void Method_7()
{
while (anyinputfor7.Read() == false && method_state_7 == true)
{
Thread.Sleep(5 * MinuteMs);
tdscontrollerA.Write(false);
Thread.Sleep(5454);
tdscontrollerA.Write(true);
tdscontrollerB.Write(false);
Thread.Sleep(3000);
tdscontrollerB.Write(true);
}
}
public static void Method_9()
{
heater.Write(false);
for (int i = 0; i < 14; i++)
{
Thread.Sleep(1 * DayMs);
solenoid.Write(false);
Thread.Sleep(20 * SecondMs);
solenoid.Write(true);
}
heater.Write(true); // added this
}
public static void Method_10()
{
drain.Write(false);
Thread.Sleep(16 * MinuteMs);
drain.Write(true);
solenoid.Write(false);
Thread.Sleep(16 * MinuteMs);
solenoid.Write(true);
Thread.Sleep(1 * MinuteMs);
}
}
}
oh and its wired like this