AVR試用記の掲示板

467399

最近、電子工作は一時ほど活発でないみたい。

しばらくは、この掲示板も電子工作にこだわらず使うことにします。

Arduino の便利さ(2) - kawana

2017/09/14 (Thu) 12:48:11

Arduino Library の勉強 - kawana
2017/09/14 (Thu) 12:41:00

Arduinoをもっと上手に利用するために
How to write libraries for the Arduino?
Writing a Library for Arduino
installing Aditional Arduino Libraries
を読んでいる?
(英語を読むのは苦手だが時間を掛けて読む)

delayMicroseconds(1); bug? - kawana

2017/11/30 (Thu) 07:29:39

悪い原因が分かった?
while(1)
{
digitalWrite(ConY, HIGH);
delayMicroseconds(1);//*****NG
//delay(100);

digitalWrite(ConY, LOW);//*****NG
delayMicroseconds(1);
//delay(100);
}

ConY以外のPORTが一瞬ONしている。

プログラム追行の確認 - kawana

2017/11/28 (Tue) 11:08:03

プログラムの追行を確認するために下記プログラムを
作成した。Lは、点滅回数

void PassCheck(uint8_t L)
{
uint8_t n;
for(n=0; n<L; n++)
{
digitalWrite(ConY, HIGH);
delay(100);
digitalWrite(ConY, LOW);
delay(100);
}
}

Portの整理 - kawana

2017/11/27 (Mon) 11:27:03

<Wire.h>
<LiquidCrystal_I2C.h>を使用するために

SDA:io4, SCL:io5

空いているport io12, io13, io14, io16

portを直接制御してI2C - kawana

2017/11/25 (Sat) 09:56:45

ESP8266で空いているPortは、io12,io4,io5だった。?

if命令をきちんと理解していないので、命令の前後に
PortSet digitalWrite(ConY, HIGH);//LED io4
PortSet digitalWrite(ConN, HIGH);//LED io5
を入れて、if分岐命令の流れを調べてみようと思う。



kumanさん、お早うございます - kawana

2017/11/25 (Sat) 05:13:03

易いLCDですね、これは面白い、私も購入してみようと
思います。紹介ありがとうございます。

アドレスモジュ-ル + シリアル--->パラレル変換が
入っているのでは?
(LCD上の15PinPAD b4---b7を使用している?)

追記1 2017.11.25(土曜、生ごみの日だ台所仕事を)
今、購入しました。

I2Cインターフェイスボードの試用 - kuman

2017/11/24 (Fri) 21:39:41

aruduino pro mini でボード(anazon ¥124)を試してみました。

自分のページ構成がややこしくなって、どこへ書けばよいかわからなくなってきました。

http://kuman2600.web.fc2.com/a09arduino_uno_mini.html#6

Excute Flash Clear ? - kawana

2017/11/24 (Fri) 20:52:37

LED OnOff Programが上手く動作しなくなった。
FlashをClearする必要が有ると思う。

追記1
間違っていた。SDA、SCLにLEDを配線しblink TESTは
してはいけない。(LCDル-チンに紛れ込んでいる)

Re: Arduino の便利さ(2) - kawana

2017/11/24 (Fri) 14:30:04

下記の様に

if=1の時L4 LEDが点灯
if=0の時L5 LEDが点灯
する様に、digitalWrite(L4orL5, HIGH);をProgram中に
入れ、分岐を確認したり、命令語の理解不足を補う


L4--io4 if=1 ***** 10
L5--io5 if=0 ***** 14



// Program name: ESP8266_ACM1602NI_DSP


// ESPWOORM2
/*
1 3V3 GND 18 L0--io12
2 EN io16 17 L1--io13
3 io14 SCL TOUT 16 L2--io14
4 io12 LED RST 15 Reset L3--io15
5 io13 SDA io5 14
6 io15 GND 13 L4--io4 if=1 ***** 10
7 io2 TX 12 L5--io5 if=0 ***** 14
8 io0 RX 11 L6--io2
9 GND io4 10 L7--io
L8--io
*/
//**********************
void loop()
{
uint8_t i;
delay(15);

while(1)
{
digitalWrite(LED, HIGH);//io12
digitalWrite(SDA, HIGH);//io13
digitalWrite(SCL, HIGH);//io14
digitalWrite(ConY, HIGH);//io4
digitalWrite(ConN, HIGH);//io5
delayMicroseconds(100);

digitalWrite(LED, LOW);
digitalWrite(SDA, LOW);
digitalWrite(SCL, LOW);
digitalWrite(ConY, LOW);
digitalWrite(ConN, LOW);
delayMicroseconds(100);

ACK(SDA)の検出(2)? - kawana

2017/11/18 (Sat) 05:29:37

今日は外出予定が無いので、I2CのACK検出をTESTする、
こんな感じで良いのでは?

pinMode(SDA, INPUT);
delayMicroseconds(1);
while( digitalRead(SDA)==0 )//????
pinMode(SDA, OUTPUT);

追記1
acknoweledgeを検出するので
digitalWrite(SDA, HIGH);
digitalWrite(SCL, HIGH);
pinMode(SDA, INPUT);//
while(SDA);//*** wait SDA=0を待つ ***
digitalWrite(SDA, LOW);
.
.
}

ACK(SDA)の検出? - kawana

2017/11/14 (Tue) 06:36:44

残る課題は、byte転送の後9bit目に出るACK(SDA)の
検出、

検出の方法を調べている。
while( )
if

if else で }が抜けていた - kawana

2017/11/14 (Tue) 04:54:30

if else命令で下記の位置に}が必要で有る事を
ミスしていた。

void WriteByte(uint8_t bytd)
{
for(i=0; i<8; i++)
{
if ( (bytd & 0x80 ) == 0x80 ) //b7 to b0 check
//{ ***** 削除修正
digitalWrite(SDA, HIGH);
//} ***** 削除修正
else
//{ ***** 削除修正
digitalWrite(SDA, LOW);
//2}//***** need } ****** //2 削除修正

delayMicroseconds(1);//for SCL, SDA center
digitalWrite(SCL, HIGH);
digitalWrite(SCL, LOW);
delayMicroseconds(1);//for SCL, SDA center
digitalWrite(SDA, LOW);

bytd = bytd << 1;
}

追記2
//2 削除修正

i2cstart,i2cstop,bytedata(0xa0)の波形観測 - kawana

2017/11/13 (Mon) 10:07:44

オシロスコ-プを適切にセットし観測する事で、勘違い
せずにi2cstart, i2cstop, bytedata(0xa0)の波形を
観測する。
Trigger:Single、時間軸 1μから10μセットできちんと観測出来た。

追記
なかな外せなかったERROR
WriteByte(byte)
{
for(i=8; i>0; i--)
{
if((byte & 0x80) == 0x80)//byte b7 to b0 check
{
digitalWrite(SDA, HIGH);

予約語 byteを使用していたので、ERROR MESSAGEの
対処が大変だった。色も青く成って居た事に気が付く
べきだった。
byte ---> bytd に変更した。nibuine me

まだ、動かない、まだ、何か有る?

P19を読んだ方がいいのでは。 - kawana

2017/11/09 (Thu) 05:09:08

アドバイスありがとうございます。

マニュアルのペ-ジ数が多く、必要と思われるところ
のみ印字し、読んでいます。ので重要事項の見落としが
有るかも?

追記
両面で22 page印刷、両面で印刷すると資料の厚さが
半分これだと読む気がする。インク代はかかるが、

追記2
P10のPICのprogramをArduinoにconvertしている。
AVRでは、昔出来た。やはり一発ではいかなかった。
一発で動作しないのであれこれ考えて(楽しみながら?)やっている。まもなく動作するだろうと思う。

RE.I2C-Start Pulse作成 - ラジオ少年

2017/11/09 (Thu) 00:10:50

ACM1602NI-FLW-FBW-M01 (DISPLAYTRONIC) CHARACTER MODULE VER1.2 DISPLAYTRONIC
XIAMEN ZETTLER ELECTRONICS CO., LTD.

11.0 DISPLAY INSTRUCTION TABLE AND DDRAM ADDRESS


P19を読んだ方がいいのでは。


I2C-Start Pulse作成 - kawana

2017/11/08 (Wed) 11:19:58

I2C-Start Pulseを作成するためには、delayMicroseconds(1);を入れた方が良さそうな事が
分かった。

// TEST
//delay(1);
//delayMicroseconds(1);
//digitalWrite(SDA, HIGH);
//digitalWrite(SCL, HIGH);

#include <Wire.h>

#define SDA 13
#define SCL 14
#define LED 12

void SDA_SCL_Set()
{
digitalWrite(SDA, HIGH);
digitalWrite(SCL, HIGH);
}
//------------------------
void SDA_SCL_Reset()
{
digitalWrite(SDA, LOW);
digitalWrite(SCL, LOW);
}
//------------------------
void LED_Reset()
{
digitalWrite(LED, LOW);
}

//-----------------------
void setup()
{
pinMode(SDA, OUTPUT);
pinMode(SCL, OUTPUT);
pinMode(LED, OUTPUT);
}

//**********************
void loop()
{
//Port Reset
SDA_SCL_Reset();
LED_Reset();

//Trigger ON
digitalWrite(LED, HIGH);
delayMicroseconds(1); //Pulse Wide 1μs
digitalWrite(LED, LOW);
delayMicroseconds(1);

//I2C Pulse Gen.
digitalWrite(SDA, HIGH);//--
digitalWrite(SCL, HIGH);// --

SDA_SCL_Reset();

}
//------------------------------
//SCL Pulse 0.5μ delayed

SDA,SCLのGenerate - kawana

2017/11/07 (Tue) 04:55:18

プログラムチェツクのため、SDA, SCLをGenerateした。
bit subroutineが悪い事が分かった。

// i2c_LCD ACM1602NI
//delay(1);
//delayMicroseconds(1);
//digitalWrite(SDA, HIGH);

#include <Wire.h>

#define SDA 13
#define SCL 14
#define LED 12

void setup()
{
pinMode(SDA, OUTPUT);
pinMode(SCL, OUTPUT);
pinMode(LED, OUTPUT);
}

//WriteCmd(0x01);
//**********************
void loop()
{
//Port Reset
digitalWrite(SDA, LOW);
digitalWrite(SCL, LOW);
digitalWrite(LED, LOW);

//Trigger ON
digitalWrite(LED, HIGH);
delayMicroseconds(1);
digitalWrite(LED, LOW);
delayMicroseconds(1);

//SDA,SCL set
digitalWrite(SDA, HIGH);
delayMicroseconds(1);

digitalWrite(SCL, HIGH);
delayMicroseconds(1);
digitalWrite(SCL, LOW);

delayMicroseconds(1);
digitalWrite(SDA, LOW);

delayMicroseconds(1);
//write_byte(0xa0); //bit pattern sent b7 to b0
}

//------------------------------

SDA,SCLの波形 - kawana

2017/11/06 (Mon) 07:13:43

下記programでSDA、SCL 1bitの波形を作成して
delayMicroseconds(1)をどこに入れるか検討した。

//i2c_SDA_SCL_test

//delay(1) //ms
//delayMicroseconds(1); //μs
//on delayMicroseconds(1); off delayMicroseconds(1);
//on:2.1us, off:7.6us

//digitalWrite(SDA, HIGH);

#include <Wire.h>

#define SDA 13
#define SCL 14
#define LED 12


void setup()
{
pinMode(SDA, OUTPUT);
pinMode(SCL, OUTPUT);
pinMode(LED, OUTPUT);
}

//**********************
void loop()
{
digitalWrite(SDA, LOW);
digitalWrite(SCL, LOW);
digitalWrite(LED, LOW);

digitalWrite(LED, HIGH);//Trigger
delayMicroseconds(1);
digitalWrite(LED, LOW);

digitalWrite(SDA, HIGH);//SDA=1
delayMicroseconds(1);

digitalWrite(SCL, HIGH);//SCL=1
delayMicroseconds(1);
digitalWrite(SCL, LOW);
delayMicroseconds(1);

digitalWrite(SDA, LOW);
delayMicroseconds(1);

delay(1);
}
//------------------------

i2cLCD_ACM1602NI - kawana

2017/11/04 (Sat) 12:44:49

http://akizukidenshi.com/download/ds/xiamen/ACM1602NI-FLW-FBW-M01_DISPLAYTRONIC_%20SPEC%20VER1.2.pdf

i2cLCD_ACM1602NIをESP8266-WROOMで表示する事を考えて
色々なサンプルを試しているが、一発で動作しない、はてと?成ってしまった。大よそは理解し動作すると思われるのだが動作しない。
そこで、以前組んだプログラムを思い浮かべ、再チャレンジしている。
i2c_Start(), i2c_Stop()を、
digital.write(SDA, HIGH)で書いている。動くまで
最後までやる。サンプルが動かないを調べる。

追記
io12をトリガとしてプログラムに組み込み、StartのSDA,SCL波形の観測、Address 0xa0がきちんと送出されているか、波形の観測をする。
追記1
LCDの動作周波数100Khzが関係しているかも知れない、
clockと適切なdelay(wait)が必要な気がする。

Wire.begin(4, 14); - kawana

2017/10/31 (Tue) 13:27:02

#include <wire.h>

wire.begin(4, 14); //(sda, scl)のio#(No.)を指定
任意に変更出来るのか?

ESP8266_tiny_weather.sch - kawana

2017/10/30 (Mon) 10:05:57

ESP8266_tiny_weather.schを見て配線をしました。
無線動作の前チックでI2C_LCD(1602D1 Strawberry Linux)LCD表示が出来ました。
この時SCLはGPio14 scl, SDAはGPio4 sdaに接続して動作
しました。
ESP8266_tiny_weather.schでは、Senser SDAがGPio13に
接続されています。変更が必要ですか?

ESP8266_tiny_weather.sch SDA GPio13
私の実験機        SDA GPio4
動作しなければ、変更して行けば良いのですが?
tiny typeだからか?

LED test で - kawana

2017/10/28 (Sat) 06:48:33

#define SCL SCL // 3
#define SDA SDA // 2
setup()
{
pinMode(SCL, OUTPUT);
}
loop()
{
digitalWrite(SCL, HIGH);

}

下記記述でSCLのPinを調べた。
#define SCL SCL // 3

Leonardoで、SCL:#3, SDA:#2
UNOで、SCL:#A5, SDA:#A4
で有る事が分かった。

CompileOKに成るが - kawana

2017/10/24 (Tue) 05:22:17

下記Program CompileOKに成るが書き込みで失敗?
書き込み設定などが悪いのか?
SCL、SDAの記述が無くても良いか?

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3e, 16, 2);

void setup()
{
lcd.begin();
lcd.backlight();
lcd.print("Hello, world!");
}

void loop()
{
;
}

i2cLCD表示が上手く動作しない - kawana

2017/10/23 (Mon) 13:00:47

Arduino/UNO, Arduino/Leonardoでは表示動作OKだが
そのプログラムで
WeMos, ESP8266 boardでは、表示OKに成らない?
よくよく考えたら(Pin信号名のチェック)SCL, SDAの
表示は無かった。サンプルを探がしたら、Wire.hを
使用するものだった。
Wire.begin(4, 14);//SDA, SCLこんな記述が必要?

基板の拡張工事 - kawana

2017/10/21 (Sat) 12:14:12

ESP-WROOM-02の取り付け基板をどこかに紛れ込まして
ユニバ-サル基板でPin化したのは良かったのだが、
ユニバ-サル基板のセット位置が悪く、横長の大きめの
LCDが取りつかないので基板を上に追加した。

2.5mmのビスで、しっかりと固定出来た。
私は、工作が好きなので、楽しみながら加工している。

写真のバックが黒くうつている、変だ、どうしたら黒バックの無い写真が貼り付け出来るか?

基板拡張を止め、元の基板に収まる様に再配置した

ESP-WROOM Board, NodeMCU Board - kawana

2017/10/21 (Sat) 02:09:07

ESP-WROOM Board, NodeMCU Board 両方ともESP8266が
使用されている事が分かった。
i2cLCDサンプルを探していたら見つかった。
きちんとボ-ド名をセットしてcompile出来た多分動作するだろう。

理解を深めたのは、BoardのPin信号名の実体図を作成
(テキストのみ)しSCL, SDAのpin#を確認して配線出来た事。
(TAB, 半角スペ-スを使用しない事で、信号名表が崩れない事が分かった。)

pin指定 D# ---> GPIO# - kawana

2017/10/19 (Thu) 03:34:43

//NodeMCU pinSignal
/*
ADC0        GPIO16
RESERVED    GPIO5
RESERVED    GPIO4
GPIO10         GPIO0
GPIO9        GPIO2
MOSI         3.3V
CS           GND
MISO        GPIO14
SCLK        GPIO12
GND          GPIO13
3.3V         GPIO15
EN           GPIO3
RST          GPIO1
GND           GND
Vin           3.3V

--
| LED16 LED5
--
*/


#define SCL 0
#define SDA 4

void setup()
{
pinMode(SCL, OUTPUT);
pinMode(SDA, OUTPUT);
}

void loop()
{
digitalWrite(SCL, HIGH);
digitalWrite(SDA, HIGH);
delay(100);
digitalWrite(SCL, LOW);
digitalWrite(SDA, LOW);
delay(100);
}

分かった事
Blinkのpin指定は、D# ---> GPIO# なのか
今理解、恥ずかしい。

NodeMCU + 1602D1(i2cLCD strawberry) - kawana

2017/10/18 (Wed) 20:42:55

NodeMCU に 1602D1(i2cLCD strawberry)を接続していますが、動作しません。何が悪いのか検討が付きません。
アドバイスをお願い致します。

2017/10/18 20:41

attiny2313のarduino - kuman

2017/10/18 (Wed) 11:55:50

tiny2313でarduino-IDEが動くかどうか試してみました。
書き込みはAVRライターでしました。

MCからシリアルで"123456789"という文字列を送り出すだけですが、正常にTeratermで受け取れました。

しかし、これだけでROMの90%以上を使いましたので、実用性はないと思います。

LightingControl Program - kawana

2017/10/18 (Wed) 05:35:29

自作ライブラリ-の作り方と設定方法を読んで、
Compileと実行をしてようやくライブラリ-の作り方を
理解出来た。

ネ-ミングが好きでないので、LedControlに変更して
みようと思う。

下らん事書いていたら記念すべき100回目に成っていた

SB1602BWi2c LCD - kawana

2017/10/18 (Wed) 05:08:59

人まねProgramですけど、Arduino/UNO、Arduino/LEONARDO
で表示出来ました。

変更点      SCL  SDA
Arduino/UNO    A5   A4    
Arduino/LEONARDO SCL  SDA

Arduinoにあらず - ラジオ少年 - kawana

2017/10/18 (Wed) 04:59:24

この回路では、発振しないと思いますよ。
アドバイスありがとうございます。

原典良く読むと100KΩを200KVRに変更して見よと有りました。VR調整により不安定ながら発振しました。
不安定なので、速、分解しました。

2017/10/18 追記
2SA1015(PNP)TrのE,Cを入れ替えました。
LED ON/OFFするが、OFFレベルがGNDまで下がらず

Re: Arduinoにあらず - ラジオ少年

2017/10/17 (Tue) 23:58:11

この回路では、発振しないと思いますよ。

Arduino の拡張基板が出来たので - kawana

2017/10/17 (Tue) 03:24:22

動作TESTを兼ねて、秋月で購入のSB1602BW I2C LCDの
表示をしてみよう。
ProgramもSubroutineも有る筈。LCDコネクタの配線のみ

Arduino の拡張基板を作ってみた - kawana

2017/10/16 (Mon) 05:01:59

製作予定は無いのだがユニバ-サル基板片面が有った。

Arduino基板はD8--D13側のPinが半ピッチ上にずれているのでユニバ-サル基板では直ぐに取り付け不能だ。

そこでピンバイスで小さな穴を開けた。最初は1.0で次に1.2で、次にパタ-ン面に部品を付けるのが美感情にも配線にも不向きと考えパタ-ンめんを下にした。

するとピンコネクタ-を固定出来ないので、0.3mmのスズメッキ線でピンを連続巻きつけし、ハンダ付けしピン間を切断した。何とか上手く出来た。

(どうして半ピッチずれているのだろうか?恣意的にずらしたのか、パタ-ン設計のミスか?)

Pinが4本増えている、
D13側にSCL,SDA
POWER側にIOREF,RESETが増えている。これを加味して、

Leonard boardに乗せてチエック Blink D12でテストOK
何を組もうか?

LM338,AMS1084 - kawana

2017/10/14 (Sat) 10:00:09

3.3V regulaterの配線をした。
端子配列を見たらAdj, Vout, Vinだったので逆さ取り付け

Vin, Vout, Adjにして配線したら配線し易かった。

気象デ-タ-ロガ-理解の前に - kawana

2017/10/14 (Sat) 00:29:25

Excelでグラフを書いてみよう。気圧、温度、電圧

漸くshuji009さんのデ-タ-ロガ-の理解出来たが、
グラフの書き方を勉強してみようと思った。
あちこち、行ってしまったが、今、RETURN

NE555 発振回路 - kawana

2017/10/13 (Fri) 11:34:49

弛張発振回路を壊してNE555発振回路を組んだ。

デュ-テイ-の計算で

(TH/(TH+TL))=Ra+Rb/(Ra+Rb)+Rb=Ra+Rb/Ra+2Rb
R式に変換し、Ra=2.2K Rb=47Kで
(2.2+47)/(2.2+94) ほぼ同じ、TH=TLの波形が得られた。

検討のためユニバ-サル基板で製作 - kawana

2017/10/12 (Thu) 02:52:39

動作しないので、ユニバ-サル基板で製作してみた。

回路チエックはユニバ-サル基板の方が回路図に近いので
チェックが簡単だと思った。

やっぱり動作せずだった。どこが悪いのか分からない?

100K+43K で発振した。弛張発振回路なので周期が
不安定でした。調整が悪いのかも知れないが、

Arduinoにあらず - kawana

2017/10/11 (Wed) 04:10:38

http://www.kotaden.com/stage5_4_index.html

上記回路をブレッドボ-ドで組んだ。動作しない。
2SC185がONせず2SA1015のベ-ス電圧が高いのでLEDが
ONしたまま。
まてよ、2SA1015がOFFしなければ?ECが入れ替わりでは?
変更点
3V ---> 5V
100Ω--->150Ω
100μ--->47μ

これは、便利、.pngも貼れた。

Arduino HID - kawana

2017/10/07 (Sat) 10:08:07

https://qiita.com/MergeCells/items/17bdc1c1fb35949195b5

きゅうる村さん、Shuji009さん、kumanさんの助言によりUARTが分かりProgram動作確認出来ました。
ArduinoのHID今一メリットが理解出来ません。
Button追加でコマンド等が一発処理出来るのが
メリットなのかも、
なのかも



ENABLE, CLEAR 配線の手抜き - kawana

2017/10/06 (Fri) 02:59:38

32Khzから1秒にダウンするためにMC14572-HD14520-HD14520を使用しLEDを点滅させる遊びの回路を配線した。

時々点滅が停止する。遊びの回路なので原因追究せずだったが、何か不良個所が有ると思い配線を確認した。
手抜きが有った。
HD14520 Pin2 CLOCK ENABLE=1(VDD),
Pin7 CLEAR=0(VSS)を手抜きしていた。これを修正すると停止する事は無かった。

基礎、規則をきちんとやるべきと思った。

実験用ボ-ドでF/Fを組む - kawana

2017/10/05 (Thu) 01:55:04

実験用ボ-ドでフリップフロップを作った。3箇所くらい配線ミスが有った。このボ-ドで回路を作るのは2回目くらい。
(動作確認したのは、今回が、初めてかも)
ボ-ドは、85x55の物

配線して分かった事
1.abcde群とfghij群の2つが有り、縦方向に
  接続点(抵抗を刺す穴が有る)
2.a群とf群間の渡りは無い
3.電源ラインは、基板の上下に+-2ライン横に有る

配線して気が付いた事

Trは、通常EBCのリ-ド配列に成っている、EBCの
リ-ドを横に曲げると配線し易い
(ラジオペンチで直角に曲げた、Eを下にして、Bを左上に、Cを右上に開いても良いところ、時間をかける癖
でそうした。)

抵抗は1/2Wタイプっを使用した(リ-ドが少し太いので

TESTで2個のLEDは交互に点滅した。
波形をオシロスコ-プで確認した。
立ち上がり波形がなまっているので、コレクタ抵抗を2.2Kに変更した。

a群とf群間にジャンパ-は無いので、TRのC,Bは
ジャンパ-した。

この様に長文に成ってしまつた。ボケ防止の指操作と
思っている

ユニバ-サル基板が好き - kawana

2017/10/03 (Tue) 11:51:59

実験ボ-ド(部品を穴に差し込んで回路を作るボ-ド)で2SC1815のAF AMPを作った。

部品を指せば回路を素早く出来るのは良いが、ユニバ-サル基板の大きさで回路を作るのは大変だと思った。

はんだ付けが無いので壊したく成ってしまう。
私は、ユニバ-サル基板ではんだ付けするのが好きだ。
時間は掛かるが、今までの様に、ユニバ-サル基板で
やろうと思う。

SoftwareSerial & Serial2? - kawana

2017/10/03 (Tue) 09:56:42

どうしたらUSART 2chを確認出来るか?

そうだ、PCを2台用意してRS接続したら確認し易いのでは
と思った。PORTのシグナル名はどうなっているのか?
調べる事からだ、

Software serial私見 - kuman

2017/10/02 (Mon) 11:48:39

arduinoはハードウエアとして1つのUARTしか持っていません。(全てでないかもしれませんが、私は知りません)

私自身2経路のUARTがあれば良いなと思ったことがあります。

MCUを使って端末、例えばLCD表示装置を作るときメインから表示データを受け取る必要があります。そのとき、通常のMCUはUARTをハードで持っていますので、これを使って受け取ることができます。

例えば、R8C/M12Aを表示のMCUとして使うとき、これはI2Cスレーブの機能を使うことができませんが、UARTなら信号線1本で受け取ることができます。

メイン側にUARTが2経路あればその1つを表示機との通信に使えます。

1経路はPCとの通信(書込み)用として使い、他の経路を周辺機器との通信に使えるので2経路は意味があることだと思います。

なお、投稿は誰が読んでも内容が理解できるように省略することなく書いてほしいと思います。書いている人には分かりきったことかもしれませんが、時々、何が話題なのか、何がポイントなのか私にはわかりにくいことがあります。
長文になるのは仕方がないと考えます。

エキサイト翻訳は2000文字まで可能 - kawana

2017/10/02 (Mon) 04:37:32

https://www.excite.co.jp/world/english/


長文を翻訳してくれるかは分かりませんが、10行くらいなら貼り付け可能です。

日常生活で英語に遭遇し、意味がいまいち分からない時など積極的に利用しています。てにおはなど、手直しは必要ですが、

翻訳したい文章(※2000文字程度まで)、またはサイトURLを入力。tab + Enterでも翻訳できます。

Arduinoをはじめよう 第3版 単行本 - kawana

2017/10/02 (Mon) 04:09:12

Arduinoをはじめよう 第3版 (Make:PROJECTS) 単行本(ソフトカバー) – 2015/11/28
Massimo Banzi (著), Michael Shiloh (著), 船田 巧 (翻訳)

この本なら昔購入しました。ざらっと読んで積読く状態に
成っています。HIDの事は、記述に無かったと思います。

仮想Deviceの危険性? - kawana

2017/10/01 (Sun) 23:05:09

Software serialは、大型コンピュ-タの入出力機器の
同時処理的な事を考えて居るのだろうか、単にSerialを
2本使用したいとの考えなのか?
Program書き込みモ-ドと実行モ-ドが区別されていれば実行モ-ドで同じHardのSerialを使うのは、問題は無い、
実行モ-ド中に、ProgramWrite状態に成っているのが悪いと思う。何を言いたいのか分から無く成ったので止める。

SerialとmySerialを実験して居る時に、ProgramSourceに入力した123が書かれているのを発見した。
タイミング二より、この様な危険が有る事、HIDの記事に有った。良く分からない者は手を出してはいけないと
言って居る事を理解した。

Arduino Leonardoの回路図 - kawana

2017/10/01 (Sun) 21:57:36

https://www.arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf

USB SerialのICらしきものは有るけど

Soft Serialの意味は?Programの書き込みにUSBPortは
必要だし、Serial2をSoft的に実現するものか?
一本あれば良いと思うが?

どこにメリットが有るのだろうか?私にはまだ理解の入口

私の考え方と気持ち - kawana

2017/10/01 (Sun) 21:43:54

聞いてはいるのですが、私には良く理解出来ていません
私サイドの考え方ですので、

その様な気持ちを持たないで下さい。
私の特殊性から来ているとお考え下さい。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/10/01 (Sun) 20:04:25

今までの説明がほとんど伝わっていない脱力感を感じています。

文章表現 ? - kawana

2017/10/01 (Sun) 19:28:26

を買って、常に参照すること。

この表現は、記述し無いか、表現を代える事が望ましいと私は思います。
私だったら、この様な表現はしないと思います。相手の年齢等に関係なく、

投稿の前に、読んでチェックしていますか?

怒ってはいないので、

Arduino Leonard Serial? - kawana

2017/10/01 (Sun) 19:18:04

SoftwareSerial()を使う意味が不明です。

私もその様に思います。ただ、
BoardにSerialのICは無い見たい(刻印が見難い)
チップが2個から1個に成って居る事からコスト削減に
成っているかも?



下記programでONに成る時は有るのか、Serialが動作するのか、知りたいところです。

if (mySerial.available())
 {
 Serial.write(mySerial.read());
 Serial.println("ON");
 }
if (Serial.available())
 {
 mySerial.write(Serial.read());
 Serial.println("OFF");
 }

Arduino LeonardのHID機能を使うを勉強してみたく思った。(HID機能についての知識は無し)
これによると、ボタン↓で、ジャンプ機能が実現らしき事が、既存の記述命令でも出来る様な気がするが??

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/10/01 (Sun) 18:28:06

leonardを使っていると前提して、
SoftwareSerial()を使う意味が不明です。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/10/01 (Sun) 10:29:10

英語を読むのがしんどいのだったら、次善の策として、
翻訳第三版(2015)(https://www.amazon.co.jp/Arduino%E3%82%92%E3%81%AF%E3%81%98%E3%82%81%E3%82%88%E3%81%86-%E7%AC%AC3%E7%89%88-Make-Massimo-Banzi/dp/487311733X/)を買って、常に参照すること。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/10/01 (Sun) 07:38:52

どういう内容のスケッチかわかりますか。
かなり支離滅裂なんです。
どこかから拾ってきたのでしょうか。

Arduino シリアルモニタ - kawana

2017/10/01 (Sun) 04:27:07

portを再設定する事で出来ました。
ありがとうございました。

Arduinoのシリアルモニタの方が使いかってが良い様に思いました。

programを変更して実行

123456789
Serial Comunication Test
Good Morning
Good Morning
Good Morning
Good Morning
Good Morning

どこからGood Morningが5行印字されるのでしょう?

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

//------------------------------
void setup() {
Serial.begin(9600);
Serial.println("Hello, world?");
while (!Serial)
{
Serial.println("Serial Comunication Test?");//;native USB port
}
}

//******************************
void loop() {
if (mySerial.available())
{
Serial.write(mySerial.read());
Serial.println("Good Afternoon!");
}
if (Serial.available())
{
mySerial.write(Serial.read());
Serial.println("Good Morning!");
}
}

***あ、分かった、delay(xx);を入れれば

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/09/30 (Sat) 22:55:06

で、teratermで動作確認できましたか。
こういう風になるはずです。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/09/30 (Sat) 22:16:00

>serial monitorは、実行(reset)でserial portのcheckをしているみたい。TERA TERMでは、前回接続のportが残っているみたい。

シリアルモニタは前回の仮想ポート番号を覚えている感じ。teratermは、現存するポートしかメニューで選択肢がない。だから、スケッチの仮想ポートが立ち上がる前に、起動してもエラーとなるのでしょう。立ち上がってから、ポートを選択する必要がある。

Arduino のシリアルモニタ-での表示 - kawana

2017/09/30 (Sat) 21:35:45

シリアルモニタ-での表示

COM22(Arduino Leonardo)
123456789 --------------入力ウインドウ?
Goodnight moon! ----- 出力ウインドウ?
Goodnight moon!
Goodnight moon!

serial monitorは、実行(reset)でserial portのcheck
をしているみたい。TERA TERMでは、前回接続のportが
残っているみたい。
入力と出力が別に表示されるところが良いと思う。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/09/30 (Sat) 07:45:20

よかったです。
teratermでも同様にポートを変更すれば、できるはずですから、試してください。

きゅうる村さんありがとう。 - kawana

2017/09/30 (Sat) 05:28:40

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(57600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}


Serial.println("Goodnight moon!");
Serial.println("Goodnight moon!");
Serial.println("Goodnight moon!");

// set the data rate for the SoftwareSerial port
mySerial.begin(4800);
mySerial.println("Hello, world?");
}

//**********************************
void loop() { // run over and over
if (mySerial.available())
{
Serial.write(mySerial.read());
Serial.println("ON");
}
if (Serial.available())
{
mySerial.write(Serial.read());
Serial.println("OFF");
}
}

上記例題をシリアルモニタで確認出来ました。
(シリアルモニタを使用する事ミソの様な気が)

if (mySerial.available())
if ( Serial.available())
の後に命令を書いて理解して行きます。

Re: Arduino の便利さ(2) - きゅうる村

2017/09/29 (Fri) 11:37:10

別にむずかしくはありません。
私が使った、arduino IDEのシリアルモニタなら、ポートの変更に追従してくれると思います。
スケッチがどのポート番号を使っているかは、IDE画面の右下などに出ます。
teratermだと、番号を調べて、手動で変更する必要がありますね。

Serialのフォ-ム出力 - kawana

2017/09/29 (Fri) 10:04:12

下記フォ-ムでSerial出力は可能ですか?

Volt1 1.23V Volt2 4.56V Volt3 5.00V

Serial.printlnでは、LFが出力されてしまう。
Serial.printでは、めんどくさい
良い方法は無いか?

LeonardoでSerial - kawana

2017/09/29 (Fri) 09:13:38

//my serial

void setup() {
Serial.begin(9600);
while(!Serial);
Serial.println("uart test");
}

void loop() {
int sensorReading = analogRead(A0);
Serial.println(sensorReading);
delay(1);
while(1);
}

UNOだとA0に接続したVRによって0,1020を表示出来るが
LeonardoだとTera Term 起動でCOM6 open errorに成る

LeonardoとしてのProgramの組み方が悪いのでは。

私にはLeonardo boardを勉強する能力が無い。ムダな
買い物に成ってしまつた。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/09/29 (Fri) 07:54:09

元da vinciで今microのもので、実験してみました。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/09/28 (Thu) 22:32:43

Serial.begin(9600);
// while the serial stream is not open, do nothing:
while (!Serial) ;
---
ユーザープログラムがポートを開くまで待つために、
この最後の行が要るのではないでしょうか。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/09/28 (Thu) 20:52:04

どうして、ポート番号があとから変わるのか、わかりにくいですね。
昨晩の文章に少し書き足してみました。
対応するブートローダーのソースも一部引用してみました。
私自身もよくわかっていません。

com6 open失敗 - kawana

2017/09/28 (Thu) 19:32:22

ここは解決しましたか。?

いいえ、解決していません。

Re: Arduino の便利さ(2) - きゅうる村

2017/09/28 (Thu) 17:47:04

>Writeは完了するが、Leonardo(COM22)が 
COM6オ-プン失敗しエラ-に成っている。
Serial Portの機能が相違しているか。?

ここは解決しましたか。

失敗談 - kumanさんを読みました - kawana

2017/09/28 (Thu) 17:17:47

原因が分かって良かったですね、
私は何時も動作不良の原因は自分に有ると思うと
どこが悪いのか、どこでミスしているか追及したくなり
遅くまでやってしまいます。すると、頭がボ-トしてきてだめだと思い中断します。

翌朝、やってみると直ぐにミスに気が付く事が有りました。

私は、理論を理解するより実験を通して理解するので
複雑な仕組みを想像する事が出来ないので、時間が掛かってしまいます。
それと、最近視力が落ちて来た様に思います。ル-ペでハンダ付け状態確認しているのですが、見逃していたりします。
切り分けテストで故障の範囲を狭める方法をやります。
TX&RXのLoopTEST、D13TEST、ボ-ド交換等をします。
不良ボ-ドが溜ると気が引けます。

失敗談 - kuman

2017/09/28 (Thu) 15:11:58

kawanaさんのお題で、久しぶりにArduinoをさわりました。
UNOもどきが傍にあったので掛け算の答をuartに戻すスケッチが、一応思うような形でできました。

mini pro に書き込んだ分も、FT232RLでは書込みと実行に何ら問題がなかったのですが、以前に使った CH340G の既製品(中国製)では書込み不可で、実行では表示はしますがPCからのデータが読めない感じで正しく動きません。

winが10に変わったからためかと思いドライバを更新しても関係ありません。

たまに正常になることもありました。さんざん悩んだあげくカバーを外してはんだ付けをルーペで点検するとRDとTDがより線のヒゲでショート状態でした。

制作直後なら見当がつきやすいのですが...
丁寧な仕事が必要ですね。

Re: Arduino の便利さ(2) - きゅうる村 URL

2017/09/27 (Wed) 20:30:04

ブログに要約を書きました。

Re: Arduino の便利さ(2) - きゅうる村

2017/09/27 (Wed) 12:44:06

ここが参考になるかと。
https://www.arduino.cc/en/Guide/ArduinoLeonardoMicro

Leonardo で s = π * r*r を test - kawana

2017/09/27 (Wed) 11:47:19

Leonardo で s = π * r*r を testした。

Programは、Arduino/UNOでOKのもの、

Writeは完了するが、Leonardo(COM22)が 
COM6オ-プン失敗しエラ-に成っている。
Serial Portの機能が相違しているか。?

Leonardo Pro Micro test - kawana

2017/09/27 (Wed) 05:24:46

Hiletgo Leonardo   R3 Pro ATmega32U4 680\
Hiletgo Leonardo Pro Micro ATmega32U4 594\

は、Leonardoとして認識しているが、D13 test NG
だった。
正規品のLeonardo のhex.file をISPmark2でWriteした。
Pro Microは、Serial Write Connectorが無かった。
PDI---15, PDO---14, SCK---16に接続した。

Re: uno互換機を発注 - きゅうる村

2017/09/26 (Tue) 16:45:14

シールド何枚も重ねたら、どうなるだろう。
バベルの塔みたいに。

Leonardo board が来た - kawana

2017/09/26 (Tue) 14:17:26

Hiletgo Leonardo R3 Pro ATmega32U4 680\
Hiletgo Leonard0 Pro Micro ATmega32U4 594\
を購入した。納期 9/30
Arduino Leonardo(Pro Micro)のHID(キ-ボ-ド)機能を使うため

2枚ともLeonardoとして認識した。衝動発注したので
4枚手持ちに成った。D13 LED TESTをするか。

TeraTeamの設定 - kuman

2017/09/26 (Tue) 12:51:47

自分では当たり前なので忘れていますが、
 ローカルエコー ON
 CR+LF設定
としています。

先のプログラムではLFの検出で文の終と判断しているのでこの設定が必要になります。CRで判断すればCRだけで行けるはずです。

遊びの展開 円の面積 - kawana

2017/09/26 (Tue) 11:42:27

遊びの展開 円の面積
UART test
Square Measure
3.14 * r * r
r= 10
Area 314

改行コ-ド CR+LF, CR - kawana

2017/09/26 (Tue) 02:31:38

Tera Term: 端末の設定で
改行コ-ド
送信(M) CR+LFにする事で動作しました。
Shuji009さん、kumanさん ありがとうございます。

CRはbufクリアを行っている?次から、注意が払える様に成ります、ありがとうございました。

*** debug1 ***
UART test
M * N = O
123
123
15129

123
456
-9448

Programは
// num X enter, num Y enter Ans R Output R in to Serial
//Input X
//Input Y
//Output R=X*Y

//-----------------------------
void setup() {
Serial.begin(9600);
Serial.println("UART test ");//with LF
Serial.println("M * N = O");
}

//-----------------------------
char a[10], b[10], c[10];
int i, na, nb, nc;
long int l;
//*********************
void loop() {
read_data(a);
read_data(b);

Serial.println(a);
Serial.println(b);

na = atoi(a);
nb = atoi(b);
i = na * nb;
l = (long int)na * (long int)nb;

Serial.println(i);
Serial.println();
}

//------------------------
void read_data(char *bb)
{
int i = 0;

while (1)
{
if (Serial.available() > 0)
{
bb[i] = Serial.read();
i++;

if (bb[i - 1] == '\n')
{
bb[i - 1] = '\0';
break;

}
}
}
}

*** debug2 ***
UART test
M * N = O
123
266
32718

123
267
-32695

*** debug3 ***
UART test
M * N = O
267
267
5753-----71289 平方根5753 ?

*** debug4 ***
UART test
M * N = O
123
456
15129 ------nb=atoi(b)---nb=123;
atoi(456) NG?
456x456=?(計算がNG?)

*** debug5 ***
long int l;//->long int xxx
//*********************
void loop() {
read_data(a);
read_data(b);

Serial.println(a);
Serial.println(b);

na = atoi(a);
//nb = atoi(b);
na = 123;
nb = 456;
i = na * nb;
l = (long int)na * (long int)nb;

Serial.println(l);//i---l xxx
Serial.println();

*** debug final ***
UART test
M * N = O
X= 123
Y= 456
Multiply= 56088

Re: Arduino の便利さ(2) - Shuji009 URL

2017/09/25 (Mon) 23:25:53

kumanさんが書かれている

>「数値」enter 「数値」enter で2つの数値を送るとその積が返されます。
>Teraterm で 9600bps、CR+LF 設定でしています。

enter の後に [Ctrl]+J(CtrlキーとJキーを同時)を押下して、うまく動作すれば、Teratermの送信の設定がCR+LFになっていないってことになります。

その場合は、 メニューバー「設定」→「端末」から、改行コードの送信を「CR」から「CR+LF」に変更すれば動作すると思います。
そうで無い場合は知りません。

kumanさんへ Teraterm起動、UNOResetでArduino の便利さ(2) - kawana

2017/09/25 (Mon) 21:01:27

uart test
=と、Tera Term起動後、Arduino/UNO Reset後に表示されます。

しかし入力出来ません(入力数値表示されず)

kawanaさんへ - kuman

2017/09/25 (Mon) 18:06:46

TeraTeamを立ち上げたときに(arduinoをリセットしたときに)

uart test
=

と表示されますか?
でなかったらTeraTeamの設定がおかしいのかもしれません。

なお、miniでCH340G使用のUSBコンバーターでは
uart start
は表示されるのですがあとが続きません。原因は不明です。

Re: Arduino の便利さ(2) - きゅうる村

2017/09/25 (Mon) 12:34:23

画像の何でもシールドは設計も自作ですか?
何かおもしろそうですね。

Arduino/UNO の製作 - kawana

2017/09/25 (Mon) 11:55:05

Arduino 何でもシ-ルドを製作した。(して有った)

無事 LEONARDOと結合出来た。

追記
画像添付のため画像縮小はどの様にすれば良いのですか
kumanさんありがとうございます。

カメラにAirFlash(Wi-Fi付き)が入っている、
このカ-ドを抜かずにPC(Wi-Fiで)に読み込ませる
設定がまだ出来ていない、やらないと勿体ない?な

画像の添付は、ファイル選択で画像を開いただけでは
ダメですか、どこかに転送しておく必要が有る?

kawanaさんへ (2)を読みました - kawana

2017/09/25 (Mon) 05:49:52

コピ-して実行しました。2個の数値を入力しましたが
2個の数値の出力、結果XxYも出力されませんでした。

何かミスしているかな-、

kawanaさんへ - kumanを読みました - kawana

2017/09/24 (Sun) 23:27:44

私がやりたかった事と合致しています。
明日やってみます。
いま、長野清里、山梨シャトレ-ゼ白州の旅から帰ってきました。帰途相模湖までは込んでいた。
シャトレ-ゼ白州工場見学では、試食コ-ナ-が有り
タイ焼きくんのアイスクリ-ムが美味かった。

Re: da vinciからmicroへ - きゅうる村 URL

2017/09/24 (Sun) 18:57:02

狐につままれたような顛末でした。

kawanaさんへ - kuman

2017/09/24 (Sun) 10:21:26

手持ちのUNOでテストしてみました。

「数値」enter 「数値」enter で2つの数値を送るとその積が返されます。

Teraterm で 9600bps、CR+LF 設定でしています。

void setup() {
Serial.begin(9600);
Serial.println("uart test");
}

char a[10], b[10], c[10];
int i, na, nb, nc;
long int l;
//*********************
void loop() {
read_data(a);
read_data(b);

Serial.write(a);
Serial.write(b);
Serial.println("");

na = atoi(a);
nb = atoi(b);
i = na * nb;
l = (long int)na * (long int)nb;
Serial.println(i);
Serial.println(l);
Serial.println();
}

// キーボードから送られた文字列を配列に受け取るサブルーチン
void read_data(char *bb) {
Serial.print("=");
int i = 0;
while (1) {
if (Serial.available() > 0) {
bb[i] = Serial.read();
i++;
if (bb[i - 1] == '\n') {
bb[i - 1] = '\0';
break;
}
}
}
}

それから、画像の縮小は「ペイント」のサイズ変更でしています。

Arduino Leonardo と言うやつ? - kawana

2017/09/24 (Sun) 03:16:52

Arduino Leonardoと言うboardは、私には理解が難しい。

programを書き込み後、実行出来るが、実行出来るのは
1回のみ。
RSを再起動しても実行出来ない(実行しない?)

どうも、RS Portを増やすため、Soft serialによって
仮想Serialとして構築しているらしい
仮想では無いSerialならば、この様な事は無いのでは?

Arduino Leonardo board 復活 - kawana

2017/09/23 (Sat) 11:20:44

安いほうのArduino Leonardo board Leonardoとして
認識しなかったが、SWITCHSCIENCEから購入品は
Leonardoとして認識していた。

動作している方のLeonardo情報をコピ-した。
最初は、Eraseをせずに書き込みをした。NGだった。
次に、Eraseをしてから書き込みしたら、Leonardoと
認識した。

2枚有ってもしょうがないので、欲しい方有れば、
郵送料金受取人払いで送ります。こんなboardいらないか?

追記2017/09/23
LED Blink書き込み動作確認出来た。

Arduino leonardo動作せず - kawana

2017/09/22 (Fri) 17:36:53

Arduino Leonardoの例題をやっているが、動作しない
どこでミスしているのだろうか?

安い Leonardo ボ-ド購入は失敗か? - kawana

2017/09/22 (Fri) 12:16:00

https://www.switch-science.com/catalog/list/?keyword=Arduino+Leonardo+%28%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88%E3%83%BB%E3%83%98%E3%83%83%E3%83%80%E4%BB%98%E3%81%8D%29
スイッチサイエンス 3132¥ OK

https://www.amazon.co.jp/s/ref=nb_sb_ss_i_6_8?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Daps&field-keywords=arduino+leonardo&sprefix=arduino+%2Caps%2C239&crid=3JPP65D2RCBV1
am。。。 購入品    2440¥?NG?

Arduino Leonardoのボ-ドをTESTしている。安くて良いからと買ったが、安い方はLeonardoと認識せず、
Arduino Industrial 101と認識してしまう。不良に遭遇
した。技術も無いのに安い物を買うのは良くないか?
Bootが書き込まれていない?

Keyboard.Println("Hello !"); - kawana

2017/09/22 (Fri) 04:36:16

キ-ボ-ド命令

// make pin 2 an input and turn on the
// pullup resistor so it goes high unless
// connected to ground:

void setup()
{
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
}

void loop()
{
if(digitalRead(2)==LOW){//if the button is pressed
Keyboard.println("Hello!");//Send the message
}
}

Re: Arduino の便利さ(2) - kawana

2017/09/22 (Fri) 04:00:09

ボ-ド Arduino/Leonardo/Micro/Due Requiredだけど

/*
Keyboard test

For the Arduino Leonardo, Micro or Due
Reads a byte from the serial port, sends a keystroke back.
The sent keystroke is one higher than what's received, e.g. if you send a,
you get b, send A you get B, and so forth.
The circuit:
- none
created 21 Oct 2011
modified 27 Mar 2012
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/KeyboardSerial
*/


#include "Keyboard.h"

//----------------------
void setup()
{
Serial.begin(9600);// open the serial port:
Keyboard.begin(); // initialize control yboard:
}


//*********************
void loop()
{
if(Serial.available() > 0) {//checkincoming dta
char inChar = Serial.read();//readincom data:
Keyboard.write(inChar + 1); //Typenextch rcvd:
}
}

Reference 英文には(日本語は翻訳中か?)
https://www.arduino.cc/en/Reference/HomePage

KeyboardSerial()
https://www.arduino.cc/en/Tutorial/KeyboardSerial

D13によるV信号 - kawana

2017/09/22 (Fri) 01:24:18

D13 LEDを使用して... --- Vを点灯した。S ?

私の目、脳では、100msの点滅は認識しづらかった。
オシロスコ-プで観測すれば認識し易いだろう。

9/22 オシロスコ-プで観測 3短点 1長点を容易に観測

Re: Arduino の便利さ(2) - kawana

2017/09/21 (Thu) 20:28:02

ADC caluc.
512
2560

センサ-未取り付けなのでキ-入力
LCD未取り付けなのでSerialOUT

debugに
unsigned int adb, tv, ref;
//***********************
void loop()
{
ref = 5;
adb = 512;

tv = (adb*ref*1000)/1024;//512*5*1000/1024=2560

tv=2560;
Serial.println(adb);
Serial.println(tv);

while(1);
}

*****
512*1000/1024を変形して512*5=2560でも良しとするか

Re: Arduino で数値入力 - kawana

2017/09/21 (Thu) 19:53:16

アルディ-ノで数値入力で検索すると、下記有り
sw_case文で数値変換していました。

http://qiita.com/hikoalpha/items/633c677f5cd12d536dcc

Arduino のKeyboard.println(); - kawana

2017/09/21 (Thu) 19:25:21

SW_case文で1 x入力、2 y入力、3 入力終了で
出来そうなのですが、こんな事やらずに、BASIC文法の様なINPUT分が有っても良いと思いました。

Arduino referenceを見ていたら、

Keyboard.println();命令が有る事が分かりました。
この命令を調べてみます。使えるのではと考えています

Re: Arduino の便利さ(2) - kuman

2017/09/21 (Thu) 15:06:23

この下の
//yamagataSerial
では

データ入力をメインループで待っています。
したがって1つのデータ(1バイト、または、文字列)を受信できますが、メインループは1つしかないので2つ以上のデータを受け取ることはできません。

1つ目のデータを受け取るループとその終了
2つ目のデータを受け取るループとその終了
その後、データ処理・プリント出力の処理を考えます。

Arduino Homeで聞いてみよう - kawana

2017/09/21 (Thu) 13:41:29

kumanさんのアドバイス検討しますが、良い方法が有ると思い、Arduino Homeに聞いてみようと思った。

日本語と英語 Bad Program

Arduino Programで悩んでいます。
目標の機能は、PC(Serial)と Arduinoの連携です。

1 第一変数(x)をPCより入力
2 第二変数(y)をPCより入力(第一変数入力終了後、)
3 Arduinoで z = x*y を計算
4 zを Serial.println(z)で Serial出力

I worry in Arduino Program.
The function of the target is cooperation of a PC (Serial) and Arduino.

1 The first variable (x) is input more than a PC.
2 The second variable (y) is input more than a PC (after first variable end of input).
3 z = x * y is calculated in Arduino.
4 z In Serial.println (z) Serial output.

//yamagataSerial ok
//---------------------
void setup() {
Serial.begin(9600);
Serial.println("YamagataSerial !");
}

unsigned char temp,buf;
//*********************
void loop()
{
if(Serial.available())
{
char temp = char(Serial.read());
Serial.println(temp);
}
}

Re: Arduino の便利さ(2) - kuman

2017/09/21 (Thu) 11:40:34

>if(Serial.available()){.....}
は文字が入っていないと素通りします。

山形大学ロボ研究の通信プログラム..は私には理解困難です。特別なケースでしょう。

入力のパターンを決めておく必要があります。
1 1文字を送りそれだけで処理をすすめるケース
2 2文字以上を送りそれぞれ1文字ごとに分けてそれぞれの文字を処理するケース
3 複数文字(1文字も含む)を複数送り、それぞれの文字列を処理するケース
などが考えられます。

メニュー選択では1をよく使います。

それ以外は3を使います。文字列の区切り(終端)にはenterを送ります。
文字列として取り込み、終端の\nを検出すると文字列の受信ルーチンを抜けるようにします。

意外と難しいキ-入力 - kawana

2017/09/21 (Thu) 10:28:12

少し良く成って来たと思うが、要望は未達成


第一変数入力後、第二変数入力したい

//yamagataSerial ok
//---------------------
void setup() {
Serial.begin(9600);
Serial.println("YamagataSerial !");
}

unsigned char temp,buf;
//*********************
void loop()
{
if(Serial.available())
{
char temp = char(Serial.read());
Serial.println(temp);
}
}

動作不良(ル-プするプログラム)? - kawana

2017/09/21 (Thu) 09:14:23

山形大学ロボ研究の通信プログラム、
動作しない(途中でル-プしている)???

http://robotastics.wpblog.jp/%E6%8A%80%E8%A1%93%E6%83%85%E5%A0%B1/arduino/pc%E3%81%A8arduino%E9%96%93%E3%81%AE%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E9%80%9A%E4%BF%A1%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E9%80%81%E5%8F%97%E4%BF%A1/

何処がミスしているのか研究中???難しいな!

Serial.available() - kawana

2017/09/21 (Thu) 02:58:11

Serial.available()をreadの前に組むように変更中

Re: 2っの入力から上手い抜け方 - kuman

2017/09/20 (Wed) 21:06:46

受信バッファが空のとき(データがないとき)はSerial.read()がどのように振る舞うかはわかりませんが、通常はバッファにデータが来るまでループで待ち、データが来たのを確認してからSerial.read()を実行します。
データ到着の確認は Serial.available() でします。

Serial.available() を調べてください。

2っの入力から上手い抜け方 - kawana

2017/09/20 (Wed) 13:07:01

kumanさんこんにちは、
検討不足のプログラム見て頂きありがとうございます。

kumanさんのおっしゃる事は分かります。
Serialでの数値入力 1-9は0x31 -- 0x39で受信されるので文字コ-ドから数値に変換する事は分かるのですが、

解決出来ない事は
2つの入力 x,yから上手く抜け出す事が出来ません、従って z=x*y;に行かない気がしているのですが?

Re: 入力x、yをPCから Arduinoへ - kuman

2017/09/20 (Wed) 10:42:55

>下記プログラムを作りましたが、上手く動作しません、

Serial.read() 命令は1文字の読み取りだったと思います。
x,yは数値のことと思いますが、キーボードのアスキーコードのはずです。
x,yに2,3を送ったつもりが、0x32、0x33を送っているはずです。10進に直すと50と51になりx*yは2550になります。
Serial.write()も文字コードですから意味不明になるのではないでしょうか。

文字で受けて数値に直し、計算後文字に直してPCへ送らねばなりません。

入力x、yをPCから Arduinoへ - kawana

2017/09/20 (Wed) 09:21:26

下記プログラムを作りましたが、上手く動作しません、
やりたい事は、Serial機能を使用して、PCから入力
x、yを入力し、掛け算の答えをSerialでPCに送ると言う簡単なプログラムなのですが?上手くゆきません。?

//Serialcom1

//-----------------------
void setup() {
Serial.begin(9600);
Serial.println("Serial Comunication Start");
}

//************************
void loop() {
int x;
int y;
int z;


x = Serial.read();
if(x != -1)
{
x=Serial.write(x);
Serial.write("\n");
}

y = Serial.read();
if(x != -1)
{
y=Serial.write(y);
Serial.write("\n");
}

z = x * y;
Serial.println(z);
Serial.write("\n");

while(1);//
}

Arduino Leonardo Boardを買う - kawana

2017/09/17 (Sun) 03:50:20

https://www.amazon.co.jp/s/ref=nb_sb_ss_c_2_15?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Dindustrial&field-keywords=arduino+leonardo&sprefix=arduino+leonard%2Caps%2C246&crid=3V9PA3XQ9S6L6

Hiletgo Leonardo R3 Pro ATmega32U4 680\
Hiletgo Leonard0 Pro Micro ATmega32U4 594\
を購入した。納期 9/30
Arduino Leonardo(Pro Micro)のHID(キ-ボ-ド)機能を使うため

SoftwareSerial.h - kawana

2017/09/16 (Sat) 04:56:55

#include <SoftwareSerial.h>

//-------------------
void setup()
{
Serial.begin(9600); //
Serial.println("Start Serial");
}

//********************
void loop()
{
int var= 2;// in 1,2,0

switch (var)
{
case 1:
//mySerial.println("1"); //case 1
Serial.println("1");
break;

case 2:
//mySerial.println("2"); //case 2
Serial.println("2");
break;

default:
//mySerial.println("defalt1"); // or 1,2
Serial.println("!1,2");
break;
}
while(1);
}

SoftwareSerialの使い方をTESTした。

Arduino Leonard(イタリアの芸術家) - kawana

2017/09/16 (Sat) 04:30:46

Arduino Leonardo(Pro Micro)のHID(キ-ボ-ド)機能を
使う(ショ-トカットキ-実行、コマンド実行)をTEST

Pro Micro のArduino boardが無いので、Arduino/UNO
で実行したら、ボ-ドが有りませんとError表示

やっぱりダメなのか、発注済み(今日来るか?)

multiply for keyIn n - kawana

2017/09/16 (Sat) 03:09:38

// multiply

#include <SoftwareSerial.h>
//SoftwareSerial mySerial(10, 11); //RX, TX

//----------------------------
void setup()
{
Serial.begin(9600);
}

// ********************
void loop()
{
int i = 4;
int j = 5;
int k;
Serial.print(i);
Serial.println("");

Serial.print(j);
Serial.println("");

k = multiply(i, j);
Serial.print(k);
Serial.println("");

delay(1500);

//while(1);//PAUSE
}

//--------------------------
int multiply(int x, int y)
{
int result;
result = x * y;
return result;
}

掛け算の練習 キ-入力出来る様にすれば完成

Re: Arduino の便利さ(2) - kawana

2017/09/15 (Fri) 19:17:13

Serial.print("BIN");

Serial.print("\n");

Serial.println(""); // prints another carriage return

*** Serial.println(""); を入れる事で印字位置揃いました ***

Arduino の便利さ(2) - kawana

2017/09/15 (Fri) 18:15:08

NO DEC HEX OCT BIN
0 0 0 0 0
1 1 1 1 1
2 2 2 2 10
3 3 3 3 11
4 4 4 4 100
5 5 5 5 101
6 6 6 6 110
7 7 7 7 111
8 8 8 10 1000
9 9 9 11 1001
10 10 A 12 1010
11 11 B 13 1011
12 12 C 14 1100
13 13 D 15 1101
14 14 E 16 1110
15 15 F 17 1111

0の行左につめるのは、どうしたら良いですか?

** ここでの表示はOKだがSerialPrintの実行では
ズレル **

int x = 0; // variable

void setup() {
Serial.begin(9600); // open the serial port at 9600 bps:
}

void loop() {
// print labels
Serial.print("NO "); // prints a label
Serial.print("\t"); // prints a tab

Serial.print("DEC");
Serial.print("\t");

Serial.print("HEX");
Serial.print("\t");

Serial.print("OCT");
Serial.print("\t");

Serial.print("BIN");
//Serial.print("\t");
Serial.print("\n");

//Serial.print("\b");


for(x=0; x< 16; x++)
{// only part of the ASCII chart, change to suit

// print it out in many formats:
Serial.print(x); //print as ASCII-encoded DEC"
Serial.print("\t"); // prints a tab

Serial.print(x, DEC); // print ASCII-encoded
Serial.print("\t"); // prints a tab

Serial.print(x, HEX); // print ASCII-encoded
Serial.print("\t"); // prints a tab

Serial.print(x, OCT); // print ASCII-encoded
Serial.print("\t"); // prints a tab

Serial.println(x, BIN);// ASCII-encoded binary

}
//adds the carriage return with "println")
Serial.println("");// prints carriage return
while(1);
}

Arduino 日本語レファレンス - kawana

2017/09/15 (Fri) 17:42:47

次のページが便利です(よく使っています)。
http://www.musashinodenpa.com/arduino/ref/index.php

ありがとう、こちらの方が、日本語なので、理解が早い
ですね。

Arduino のSleep機能 - kawana

2017/09/15 (Fri) 17:36:43

http://tetsuakibaba.jp/index.php?page=workshop/ArduinoBasis/sleep

ARDUINO SLEEP機能の説明が有った。

While(1);で止めて置くのは消費電力が増すので
宜しくないと思った。

PCとの通信 - kuman

2017/09/15 (Fri) 10:23:39

次のページが便利です(よく使っています)。
http://www.musashinodenpa.com/arduino/ref/index.php

Serial.print()
Serial.println()
Serial.read()

を使っています。

Pause() - kawana

2017/09/15 (Fri) 10:01:53

print()の良い例題で、欲しいと思った命令

Pause();

while(1);で同じ機能が出来るので却下。

Arduino leonardo  - kawana

2017/09/15 (Fri) 09:51:00

https://www.amazon.co.jp/HiLetgo-Leonardo-ATmega32U4-Arduino%E3%81%A8%E4%BA%92%E6%8F%9B-%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AA%E3%81%97/dp/B013QV2BB0/ref=sr_1_2?ie=UTF8&qid=1505436319&sr=8-2&keywords=arduino+leonardo

arduino leonardo boardを買ってしまった。
安くて手ごろにWEBでボ-ドが買えると買ってしまう、
癖(良いか?悪いか?)

Re: Arduino の便利さ(2) - kawana

2017/09/15 (Fri) 08:52:01

print()の良い例題が有った。

/*
Uses a FOR loop for data and prints a number in various formats.
*/
int x = 0; // variable

void setup()
{
Serial.begin(9600); // open the serial port at 9600 bps:
}

void loop()
{
// print labels
Serial.print("NO FORMAT"); // prints a label
Serial.print("\t"); // prints a tab

Serial.print("DEC");
Serial.print("\t");

Serial.print("HEX");
Serial.print("\t");

Serial.print("OCT");
Serial.print("\t");

Serial.print("BIN");
Serial.print("\t");

for(x=0; x< 64; x++)
{// only part of the ASCII chart, change to suit

// print it out in many formats:
Serial.print(x);// print as an ASCII-encoded             decimal - same as "DEC"
Serial.print("\t"); // prints a tab
Serial.print(x, DEC);// print as an ASCII-
              encoded decimal
Serial.print("\t"); // prints a tab
Serial.print(x, HEX); // print as an ASCII-
              encoded hexadecimal
Serial.print("\t"); // prints a tab
Serial.print(x, OCT); // print as an ASCII-
              octal
Serial.print("\t"); // prints a tab
Serial.println(x, BIN); // print as an ASCII-
             encoded binary
// then adds the carriage return with
            "println")
}
Serial.println("");// prints another carriage
             return
while(1);
}

Re: Arduino の便利さ(2) - kawana

2017/09/15 (Fri) 05:28:41

//Serial.print( 0x09 );//tab
Serial.print( 0x0A );// CR
Serial.print( 0x08 );// BS

Serial.print( 0x0A );// CRでは、SerialCOM出力は改行されない。

改行するには、どの様に記述するのでしょうか?

PAUSE 命令は無いの? - kawana

2017/09/15 (Fri) 04:54:55

// multiply

#include <SoftwareSerial.h>
//SoftwareSerial mySerial(10, 11); //RX, TX

//----------------------------
void setup()
{
Serial.begin(9600);
}

// ********************
void loop()
{
int i = 4;
int j = 5;
int k;

k = multiply(i, j);
Serial.print(k);
delay(15000);
while(1);//PAUSE
}

変数をKeyboardからの入力に変更したいが、
FUNCTION Keyboard で出来るのか?

反省 - kawana

2017/09/15 (Fri) 04:32:11

私には、製作の最初、信号をLED点灯で見る癖があり、
SCL、SDAにもLEDを付ける癖が有った。
(信号+で点灯で抵抗3.3K以上を心がけていたが)

PULUP抵抗3.3Kが有るため点灯してしまう。精々
TRIGERとしてD13信号のみならば良いと考えを改めた。

Arduino Instraction - kawana

2017/09/14 (Thu) 14:28:15

Arudino の 命令

https://www.arduino.cc/en/Reference/HomePage

Language Reference Arduino Instraction

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.