Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
f09ffdb1
Commit
f09ffdb1
authored
Jan 28, 2015
by
Vladimir Dronnikov
Browse files
IR send module added
parent
1346cbbc
Changes
1
Show whitespace changes
Inline
Side-by-side
lua_examples/irsend.lua
0 → 100644
View file @
f09ffdb1
------------------------------------------------------------------------------
-- IR send module
--
-- LICENCE: http://opensource.org/licenses/MIT
-- Vladimir Dronnikov <dronnikov@gmail.com>
--
-- Example:
-- require("irsend").nec(4, 0x00ff00ff)
------------------------------------------------------------------------------
local
M
do
-- const
local
NEC_PULSE_US
=
1000000
/
38000
local
NEC_HDR_MARK
=
9000
local
NEC_HDR_SPACE
=
4500
local
NEC_BIT_MARK
=
560
local
NEC_ONE_SPACE
=
1600
local
NEC_ZERO_SPACE
=
560
local
NEC_RPT_SPACE
=
2250
-- cache
local
gpio
,
bit
=
gpio
,
bit
local
mode
,
write
=
gpio
.
mode
,
gpio
.
write
local
waitus
=
tmr
.
delay
local
isset
=
bit
.
isset
-- NB: poorman 38kHz PWM with 1/3 duty. Touch with care! )
local
carrier
=
function
(
pin
,
c
)
c
=
c
/
NEC_PULSE_US
while
c
>
0
do
write
(
pin
,
1
)
write
(
pin
,
0
)
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
*
1
c
=
c
*
1
c
=
c
*
1
c
=
c
-
1
end
end
-- tsop signal simulator
local
pull
=
function
(
pin
,
c
)
write
(
pin
,
0
)
waitus
(
c
)
write
(
pin
,
1
)
end
-- NB: tsop mode allows to directly connect pin
-- inplace of TSOP input
local
nec
=
function
(
pin
,
code
,
tsop
)
local
pulse
=
tsop
and
pull
or
carrier
-- setup transmitter
mode
(
pin
,
1
)
write
(
pin
,
tsop
and
1
or
0
)
-- header
pulse
(
pin
,
NEC_HDR_MARK
)
waitus
(
NEC_HDR_SPACE
)
-- sequence, lsb first
for
i
=
0
,
31
do
pulse
(
pin
,
NEC_BIT_MARK
)
waitus
(
isset
(
code
,
i
)
and
NEC_ONE_SPACE
or
NEC_ZERO_SPACE
)
end
-- trailer
pulse
(
pin
,
NEC_BIT_MARK
)
-- done transmitter
--mode(pin, 0, tsop and 1 or 0)
end
-- expose
M
=
{
nec
=
nec
,
}
end
return
M
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment