<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://jitterjames.net/voxcommandoWiki/index.php?action=history&amp;feed=atom&amp;title=Arduino</id>
	<title>Arduino - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://jitterjames.net/voxcommandoWiki/index.php?action=history&amp;feed=atom&amp;title=Arduino"/>
	<link rel="alternate" type="text/html" href="https://jitterjames.net/voxcommandoWiki/index.php?title=Arduino&amp;action=history"/>
	<updated>2026-10-16T08:09:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://jitterjames.net/voxcommandoWiki/index.php?title=Arduino&amp;diff=19&amp;oldid=prev</id>
		<title>James: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://jitterjames.net/voxcommandoWiki/index.php?title=Arduino&amp;diff=19&amp;oldid=prev"/>
		<updated>2021-01-13T17:24:55Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:24, 13 January 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>James</name></author>
		
	</entry>
	<entry>
		<id>https://jitterjames.net/voxcommandoWiki/index.php?title=Arduino&amp;diff=18&amp;oldid=prev</id>
		<title>Jitterjames: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://jitterjames.net/voxcommandoWiki/index.php?title=Arduino&amp;diff=18&amp;oldid=prev"/>
		<updated>2014-11-25T18:02:57Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Samples=&lt;br /&gt;
Here are some examples using the [[python]] plugin for VC to talk to Arduino.&lt;br /&gt;
&lt;br /&gt;
You must [[plugins|enable the python plugin]] to use the examples.&lt;br /&gt;
&lt;br /&gt;
==Sample #1==&lt;br /&gt;
Using python to communicate with Arduino on serial port.  A simple example of controlling GPIO pins on an Arduino Mega.&lt;br /&gt;
In this case we are setting digital output pins to either HIGH or LOW in order to control a relay board.&lt;br /&gt;
&lt;br /&gt;
See it in action:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;iframe width=&amp;quot;600&amp;quot; height=&amp;quot;365&amp;quot; src=&amp;quot;//www.youtube.com/embed/sz6_1Igfx-s?rel=0&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Arduino code===&lt;br /&gt;
*Here is the Arduino code:&lt;br /&gt;
*You can change which GPIO pins will be used by changing the first 4 lines of code&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int relay1=40;&lt;br /&gt;
int relay2=42;&lt;br /&gt;
int relay3=44;&lt;br /&gt;
int relay4=46;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{                &lt;br /&gt;
  // initialize the digital pin as an output.&lt;br /&gt;
  pinMode(relay1, OUTPUT); &lt;br /&gt;
  digitalWrite(relay1, HIGH);    &lt;br /&gt;
  pinMode(relay2, OUTPUT);  &lt;br /&gt;
  digitalWrite(relay2, HIGH);    &lt;br /&gt;
  pinMode(relay3, OUTPUT); &lt;br /&gt;
  digitalWrite(relay3, HIGH);    &lt;br /&gt;
  pinMode(relay4, OUTPUT);  &lt;br /&gt;
  digitalWrite(relay4, HIGH);    &lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// the loop routine runs over and over again forever:&lt;br /&gt;
void loop() {&lt;br /&gt;
  delay(50);&lt;br /&gt;
  if (Serial.available() &amp;gt;= 2)&lt;br /&gt;
  {&lt;br /&gt;
    char numRelay = Serial.read();&lt;br /&gt;
    char newState = Serial.read();&lt;br /&gt;
&lt;br /&gt;
    switch (numRelay) {&lt;br /&gt;
    case '1':      &lt;br /&gt;
      adjustRelay(relay1,newState);&lt;br /&gt;
      break;&lt;br /&gt;
    case '2':&lt;br /&gt;
      adjustRelay(relay2,newState);&lt;br /&gt;
      break;&lt;br /&gt;
    case '3':&lt;br /&gt;
      adjustRelay(relay3,newState);&lt;br /&gt;
      break;    &lt;br /&gt;
    case '4':&lt;br /&gt;
      adjustRelay(relay4,newState);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void adjustRelay(int whichPin, char setState)&lt;br /&gt;
{&lt;br /&gt;
  if (setState=='0')&lt;br /&gt;
  {&lt;br /&gt;
    Serial.write(&amp;quot; OFF&amp;quot;);&lt;br /&gt;
    digitalWrite(whichPin, HIGH);&lt;br /&gt;
  }&lt;br /&gt;
  else if(setState=='1')&lt;br /&gt;
  {    &lt;br /&gt;
    Serial.write(&amp;quot; ON&amp;quot;);&lt;br /&gt;
    digitalWrite(whichPin, LOW);    &lt;br /&gt;
  }     &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Python code===&lt;br /&gt;
* Save the following code to the file: VoxCommando\PY\ArduinoStartup.py&lt;br /&gt;
* Be sure to adjust the com port to match the port that your Arduino is connected to.  Mine is connected to &amp;quot;COM4&amp;quot;&lt;br /&gt;
* Note that in this example the serial port will be opened when VC starts and will remain open until VC closes.  If you prefer you can edit the code to have it open the port, send the data, and close the port each time the arduinoWrite function is called.  However, with certain versions of Arduino, opening the serial port can cause the Arduino to reset!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import clr&lt;br /&gt;
clr.AddReference('System')&lt;br /&gt;
from System import *&lt;br /&gt;
serialPort = IO.Ports.SerialPort(&amp;quot;COM4&amp;quot;)&lt;br /&gt;
serialPort.BaudRate = 9600&lt;br /&gt;
serialPort.DataBits = 8&lt;br /&gt;
serialPort.Open()&lt;br /&gt;
&lt;br /&gt;
def arduinoWrite(str):&lt;br /&gt;
    serialPort.Write(str)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML voice commands===&lt;br /&gt;
* Copy and paste the following xml [[XML_on_the_forum#Importing_XML_to_Your_Command_Tree|into your VoxCommando command tree]].&lt;br /&gt;
* The &amp;quot;startup&amp;quot; command loads your ArduinoStartup.py python file when VC first starts up (using the VC.Loaded [[Events|event]] trigger). Therefore, you should re-start VC before testing the voice commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-16&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;commandGroup open=&amp;quot;True&amp;quot; name=&amp;quot;ArduinoRelays&amp;quot; enabled=&amp;quot;True&amp;quot; prefix=&amp;quot;&amp;quot; priority=&amp;quot;0&amp;quot; requiredProcess=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;command id=&amp;quot;270&amp;quot; name=&amp;quot;startup&amp;quot; enabled=&amp;quot;true&amp;quot; alwaysOn=&amp;quot;False&amp;quot; confirm=&amp;quot;False&amp;quot; requiredConfidence=&amp;quot;0&amp;quot; loop=&amp;quot;False&amp;quot; loopDelay=&amp;quot;0&amp;quot; loopMax=&amp;quot;0&amp;quot; description=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;cmdType&amp;gt;PY.ExecFile&amp;lt;/cmdType&amp;gt;&lt;br /&gt;
      &amp;lt;cmdString&amp;gt;PY\ArduinoStartup.py&amp;lt;/cmdString&amp;gt;&lt;br /&gt;
      &amp;lt;cmdRepeat&amp;gt;1&amp;lt;/cmdRepeat&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;event&amp;gt;VC.Loaded&amp;lt;/event&amp;gt;&lt;br /&gt;
  &amp;lt;/command&amp;gt;&lt;br /&gt;
  &amp;lt;command id=&amp;quot;277&amp;quot; name=&amp;quot;Turn Relay {1} on&amp;quot; enabled=&amp;quot;true&amp;quot; alwaysOn=&amp;quot;False&amp;quot; confirm=&amp;quot;False&amp;quot; requiredConfidence=&amp;quot;0&amp;quot; loop=&amp;quot;False&amp;quot; loopDelay=&amp;quot;0&amp;quot; loopMax=&amp;quot;0&amp;quot; description=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;cmdType&amp;gt;PY.ExecString&amp;lt;/cmdType&amp;gt;&lt;br /&gt;
      &amp;lt;cmdString&amp;gt;arduinoWrite(&amp;quot;{1}1&amp;quot;)&amp;lt;/cmdString&amp;gt;&lt;br /&gt;
      &amp;lt;cmdRepeat&amp;gt;1&amp;lt;/cmdRepeat&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;phrase&amp;gt;Turn relay&amp;lt;/phrase&amp;gt;&lt;br /&gt;
    &amp;lt;payloadRange&amp;gt;1,4&amp;lt;/payloadRange&amp;gt;&lt;br /&gt;
    &amp;lt;phrase&amp;gt;on&amp;lt;/phrase&amp;gt;&lt;br /&gt;
  &amp;lt;/command&amp;gt;&lt;br /&gt;
  &amp;lt;command id=&amp;quot;305&amp;quot; name=&amp;quot;Turn Relay {1} off&amp;quot; enabled=&amp;quot;true&amp;quot; alwaysOn=&amp;quot;False&amp;quot; confirm=&amp;quot;False&amp;quot; requiredConfidence=&amp;quot;0&amp;quot; loop=&amp;quot;False&amp;quot; loopDelay=&amp;quot;0&amp;quot; loopMax=&amp;quot;0&amp;quot; description=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;cmdType&amp;gt;PY.ExecString&amp;lt;/cmdType&amp;gt;&lt;br /&gt;
      &amp;lt;cmdString&amp;gt;arduinoWrite(&amp;quot;{1}0&amp;quot;)&amp;lt;/cmdString&amp;gt;&lt;br /&gt;
      &amp;lt;cmdRepeat&amp;gt;1&amp;lt;/cmdRepeat&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;phrase&amp;gt;Turn relay&amp;lt;/phrase&amp;gt;&lt;br /&gt;
    &amp;lt;payloadRange&amp;gt;1,4&amp;lt;/payloadRange&amp;gt;&lt;br /&gt;
    &amp;lt;phrase&amp;gt;off&amp;lt;/phrase&amp;gt;&lt;br /&gt;
  &amp;lt;/command&amp;gt;&lt;br /&gt;
  &amp;lt;command id=&amp;quot;301&amp;quot; name=&amp;quot;Turn all relays OFF&amp;quot; enabled=&amp;quot;true&amp;quot; alwaysOn=&amp;quot;False&amp;quot; confirm=&amp;quot;False&amp;quot; requiredConfidence=&amp;quot;0&amp;quot; loop=&amp;quot;False&amp;quot; loopDelay=&amp;quot;0&amp;quot; loopMax=&amp;quot;0&amp;quot; description=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;cmdType&amp;gt;PY.ExecString&amp;lt;/cmdType&amp;gt;&lt;br /&gt;
      &amp;lt;cmdString&amp;gt;arduinoWrite(&amp;quot;10203040&amp;quot;)&amp;lt;/cmdString&amp;gt;&lt;br /&gt;
      &amp;lt;cmdRepeat&amp;gt;1&amp;lt;/cmdRepeat&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;phrase&amp;gt;Turn all relays OFF&amp;lt;/phrase&amp;gt;&lt;br /&gt;
  &amp;lt;/command&amp;gt;&lt;br /&gt;
  &amp;lt;command id=&amp;quot;314&amp;quot; name=&amp;quot;Turn all relays ON&amp;quot; enabled=&amp;quot;true&amp;quot; alwaysOn=&amp;quot;False&amp;quot; confirm=&amp;quot;False&amp;quot; requiredConfidence=&amp;quot;0&amp;quot; loop=&amp;quot;False&amp;quot; loopDelay=&amp;quot;0&amp;quot; loopMax=&amp;quot;0&amp;quot; description=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;&lt;br /&gt;
      &amp;lt;cmdType&amp;gt;PY.ExecString&amp;lt;/cmdType&amp;gt;&lt;br /&gt;
      &amp;lt;cmdString&amp;gt;arduinoWrite(&amp;quot;11213141&amp;quot;)&amp;lt;/cmdString&amp;gt;&lt;br /&gt;
      &amp;lt;cmdRepeat&amp;gt;1&amp;lt;/cmdRepeat&amp;gt;&lt;br /&gt;
    &amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;phrase&amp;gt;Turn all relays ON&amp;lt;/phrase&amp;gt;&lt;br /&gt;
  &amp;lt;/command&amp;gt;&lt;br /&gt;
&amp;lt;/commandGroup&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Sample #2==&lt;br /&gt;
Serial communication in both directions. Code and explanation in this forum thread: http://voxcommando.com/forum/index.php?topic=1452.msg12742#msg12742&lt;/div&gt;</summary>
		<author><name>Jitterjames</name></author>
		
	</entry>
</feed>