@@ -76,9 +76,11 @@ module.exports = function(RED) {
76
76
node . status ( { fill :"grey" , shape :"ring" , text :"node-red:common.status.connecting" } ) ;
77
77
var doit = function ( ) {
78
78
node . running = true ;
79
+ if ( node . state === "ANALOG" ) { node . board . pinMode ( node . pin , 0x02 ) ; }
80
+ if ( node . state === "INPUT" ) { node . board . pinMode ( node . pin , 0x00 ) ; }
81
+ if ( node . state === "PULLUP" ) { node . board . pinMode ( node . pin , 0x0B ) ; }
79
82
node . status ( { fill :"green" , shape :"dot" , text :"node-red:common.status.connected" } ) ;
80
83
if ( node . state === "ANALOG" ) {
81
- node . board . pinMode ( node . pin , 0x02 ) ;
82
84
node . board . analogRead ( node . pin , function ( v ) {
83
85
if ( v !== node . oldval ) {
84
86
node . oldval = v ;
@@ -87,7 +89,6 @@ module.exports = function(RED) {
87
89
} ) ;
88
90
}
89
91
if ( node . state === "INPUT" ) {
90
- node . board . pinMode ( node . pin , 0x00 ) ;
91
92
node . board . digitalRead ( node . pin , function ( v ) {
92
93
if ( v !== node . oldval ) {
93
94
node . oldval = v ;
@@ -96,7 +97,6 @@ module.exports = function(RED) {
96
97
} ) ;
97
98
}
98
99
if ( node . state === "PULLUP" ) {
99
- node . board . pinMode ( node . pin , 0x0B ) ;
100
100
node . board . digitalRead ( node . pin , function ( v ) {
101
101
if ( v !== node . oldval ) {
102
102
node . oldval = v ;
@@ -149,27 +149,27 @@ module.exports = function(RED) {
149
149
node . status ( { fill :"grey" , shape :"ring" , text :"node-red:common.status.connecting" } ) ;
150
150
var doit = function ( ) {
151
151
node . running = true ;
152
+ if ( node . state === "OUTPUT" ) { node . board . pinMode ( node . pin , 0x01 ) ; }
153
+ if ( node . state === "PWM" ) { node . board . pinMode ( node . pin , 0x03 ) ; }
154
+ if ( node . state === "SERVO" ) { node . board . pinMode ( node . pin , 0x04 ) ; }
152
155
node . status ( { fill :"green" , shape :"dot" , text :"node-red:common.status.connected" } ) ;
153
156
node . on ( "input" , function ( msg ) {
154
157
if ( node . board . isReady ) {
155
158
if ( node . state === "OUTPUT" ) {
156
- node . board . pinMode ( node . pin , 0x01 ) ;
157
159
if ( ( msg . payload === true ) || ( msg . payload . toString ( ) == "1" ) || ( msg . payload . toString ( ) . toLowerCase ( ) == "on" ) ) {
158
160
node . board . digitalWrite ( node . pin , node . board . HIGH ) ;
159
161
}
160
162
if ( ( msg . payload === false ) || ( msg . payload . toString ( ) == "0" ) || ( msg . payload . toString ( ) . toLowerCase ( ) == "off" ) ) {
161
163
node . board . digitalWrite ( node . pin , node . board . LOW ) ;
162
164
}
163
165
}
164
- if ( node . state === "PWM" ) {
165
- node . board . pinMode ( node . pin , 0x03 ) ;
166
+ if ( node . state === "PWM" ) {
166
167
msg . payload = parseInt ( ( msg . payload * 1 ) + 0.5 ) ;
167
168
if ( ( msg . payload >= 0 ) && ( msg . payload <= 255 ) ) {
168
169
node . board . analogWrite ( node . pin , msg . payload ) ;
169
170
}
170
171
}
171
172
if ( node . state === "SERVO" ) {
172
- node . board . pinMode ( node . pin , 0x04 ) ;
173
173
msg . payload = parseInt ( ( msg . payload * 1 ) + 0.5 ) ;
174
174
if ( ( msg . payload >= 0 ) && ( msg . payload <= 180 ) ) {
175
175
node . board . servoWrite ( node . pin , msg . payload ) ;
0 commit comments