optriac sensors use Arduino API
This commit is contained in:
parent
f7e987cbeb
commit
42d3b38c9c
5 changed files with 24 additions and 179 deletions
|
@ -18,7 +18,7 @@ CONTIKI_TARGET_SOURCEFILES += battery-sensor.c batmon.c
|
||||||
#Needed for PIR
|
#Needed for PIR
|
||||||
CONTIKI_TARGET_SOURCEFILES += pir-sensor.c
|
CONTIKI_TARGET_SOURCEFILES += pir-sensor.c
|
||||||
#Needed for OPTRIAC
|
#Needed for OPTRIAC
|
||||||
CONTIKI_TARGET_SOURCEFILES += optriac.c optriac-sensor.c
|
CONTIKI_TARGET_SOURCEFILES += optriac-sensor.c
|
||||||
CONTIKIAVR=$(CONTIKI)/cpu/avr
|
CONTIKIAVR=$(CONTIKI)/cpu/avr
|
||||||
#Needed for SERVO
|
#Needed for SERVO
|
||||||
CONTIKI_TARGET_SOURCEFILES += servo.c servo-sensor.c
|
CONTIKI_TARGET_SOURCEFILES += servo.c servo-sensor.c
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
#include "dev/optriac.h"
|
#include "Arduino.h"
|
||||||
#include "dev/optriac-sensor.h"
|
#include "dev/optriac-sensor.h"
|
||||||
|
|
||||||
#define PRINTF(...) printf(__VA_ARGS__)
|
#define PRINTF(...) printf(__VA_ARGS__)
|
||||||
|
@ -45,22 +45,14 @@
|
||||||
const struct sensors_sensor optriac_sensor;
|
const struct sensors_sensor optriac_sensor;
|
||||||
static int status(int type);
|
static int status(int type);
|
||||||
static int enabled = 0;
|
static int enabled = 0;
|
||||||
static int optriac1=0;
|
static int optriac[2]={0,0};
|
||||||
static int optriac2=0;
|
static int optriacpin[8]={OPTRIAC_PIN_1,OPTRIAC_PIN_2};
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int
|
static int
|
||||||
value(int type)
|
value(int type)
|
||||||
{
|
{
|
||||||
switch(type) {
|
return optriac[type];
|
||||||
case OPTRIAC_SENSOR_A:
|
|
||||||
return optriac1;
|
|
||||||
|
|
||||||
/* Total Solar Radiation. */
|
|
||||||
case OPTRIAC_SENSOR_B:
|
|
||||||
return optriac2;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int
|
static int
|
||||||
|
@ -70,32 +62,30 @@ configure(int type, int c)
|
||||||
case SENSORS_ACTIVE:
|
case SENSORS_ACTIVE:
|
||||||
if(c) {
|
if(c) {
|
||||||
if(!status(SENSORS_ACTIVE)) {
|
if(!status(SENSORS_ACTIVE)) {
|
||||||
|
pinMode(optriacpin[OPTRIAC_SENSOR_1], OUTPUT);
|
||||||
|
digitalWrite(optriacpin[OPTRIAC_SENSOR_1], LOW);
|
||||||
|
pinMode(optriacpin[OPTRIAC_SENSOR_2], OUTPUT);
|
||||||
|
digitalWrite(optriacpin[OPTRIAC_SENSOR_2], LOW);
|
||||||
|
|
||||||
enabled = 1;
|
enabled = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
enabled = 1;
|
enabled = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OPTRIAC_SENSOR_A:
|
case OPTRIAC_SENSOR_1:
|
||||||
|
case OPTRIAC_SENSOR_2:
|
||||||
|
|
||||||
if(c==0){
|
if(c==0){
|
||||||
optriac1_off();
|
digitalWrite(optriacpin[type], LOW);
|
||||||
optriac1=0;
|
optriac[type]=0;
|
||||||
}else{
|
}else{
|
||||||
optriac1_on();
|
digitalWrite(optriacpin[type], HIGH);
|
||||||
optriac1=1;
|
optriac[type]=1;
|
||||||
};
|
|
||||||
break;
|
|
||||||
case OPTRIAC_SENSOR_B:
|
|
||||||
if(c==0){
|
|
||||||
optriac2_off();
|
|
||||||
optriac2=0;
|
|
||||||
}else{
|
|
||||||
optriac2_on();
|
|
||||||
optriac2=1;
|
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -44,7 +44,11 @@
|
||||||
extern const struct sensors_sensor optriac_sensor;
|
extern const struct sensors_sensor optriac_sensor;
|
||||||
|
|
||||||
#define OPTRIAC_SENSOR "TRIAC"
|
#define OPTRIAC_SENSOR "TRIAC"
|
||||||
#define OPTRIAC_SENSOR_A 0
|
#define OPTRIAC_SENSOR_1 0
|
||||||
#define OPTRIAC_SENSOR_B 1
|
#define OPTRIAC_SENSOR_2 1
|
||||||
|
|
||||||
|
/* default pins Arduino-Merkurboard */
|
||||||
|
#define OPTRIAC_PIN_1 2
|
||||||
|
#define OPTRIAC_PIN_2 3
|
||||||
|
|
||||||
#endif /* __OPTRIAC_SENSOR_H__ */
|
#endif /* __OPTRIAC_SENSOR_H__ */
|
||||||
|
|
|
@ -1,95 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2012 harald pichler
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in
|
|
||||||
* the documentation and/or other materials provided with the
|
|
||||||
* distribution.
|
|
||||||
* * Neither the name of the copyright holders nor the names of
|
|
||||||
* contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* \file
|
|
||||||
*
|
|
||||||
* \brief
|
|
||||||
* This file provides Raven LED support.
|
|
||||||
*
|
|
||||||
* \author
|
|
||||||
* Harald Pichler harald@the-develop.net
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "optriac.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \addtogroup relay
|
|
||||||
* \{
|
|
||||||
*/
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Turns the TRIAC 1 off.
|
|
||||||
* old D6 D7
|
|
||||||
* new E3 E4
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
optriac1_off(void)
|
|
||||||
{
|
|
||||||
DDRE |= (1<<PINE3);
|
|
||||||
PORTE &= ~(1<<PINE3);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Turns the TRIAC 1 on.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
optriac1_on(void)
|
|
||||||
{
|
|
||||||
DDRE |= (1<<PINE3);
|
|
||||||
PORTE |= (1<<PINE3);
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Turns the Raven TRIAC 2 off.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
optriac2_off(void)
|
|
||||||
{
|
|
||||||
DDRE |= (1<<PINE4);
|
|
||||||
PORTE &= ~(1<<PINE4);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Turns the Raven TRIAC 2 on.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
optriac2_on(void)
|
|
||||||
{
|
|
||||||
DDRE |= (1<<PINE4);
|
|
||||||
PORTE |= (1<<PINE4);
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
|
@ -1,54 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2013 Harald Pichler
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in
|
|
||||||
* the documentation and/or other materials provided with the
|
|
||||||
* distribution.
|
|
||||||
* * Neither the name of the copyright holders nor the names of
|
|
||||||
* contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* \file
|
|
||||||
*
|
|
||||||
* \brief
|
|
||||||
* This file provides optotriac support.
|
|
||||||
*
|
|
||||||
* \author
|
|
||||||
* Harald Pichler harald@the-develop.net
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __TRIAC_H__
|
|
||||||
#define __TRIAC_H__
|
|
||||||
|
|
||||||
#include <avr/io.h>
|
|
||||||
|
|
||||||
/** @name TRIAC Functions */
|
|
||||||
/** @{ */
|
|
||||||
void optriac1_on(void);
|
|
||||||
void optriac1_off(void);
|
|
||||||
void optriac2_on(void);
|
|
||||||
void optriac2_off(void);
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
#endif /* __TRIAC_H__ */
|
|
Loading…
Add table
Add a link
Reference in a new issue