質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

3回答

16323閲覧

ArduinoでASCIIコードを変換したい

tomoki_takaba

総合スコア62

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2019/03/10 07:17

ArduinoでASCIIコードを変換したい

Ardunoで文字をASCIIコード(10進数)に変換したいのですが、調べても出てきません。どうすれば良いのでしょうか?

試したこと

stringで辞書に近い文字列を作ってみたものの、変数に2度代入されてしまう。(同じ数値が)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/03/10 13:15

質門が意味不明です ASCIIコードとは文字コードのことですが、質門の意味が通りません そのコードを提示してみてください
thkana

2019/03/10 13:38

なにをしたら、どうなればいいのでしょう。具体的に、あなたが行う操作、機械が行う目に見える動作として説明してみて下さい。 多分、自分が何をしたいのかすらわかっていないので、「調べる」ことも出来ていないのだと思います。
tomoki_takaba

2019/03/11 14:08

例えばシリアルモニタでaを送信すれば10を返してくるといった具合です
thkana

2019/03/11 14:36

なのに、なぜaに対して97を返してくる回答がベストアンサー? それで解決ならまぁいいけど。
tomoki_takaba

2019/03/14 12:59

すみません、間違えました。97が正しいです。すみません
guest

回答3

0

ベストアンサー

cast演算子で出来ます。
http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=1945

void setup() {
char s[]="ABC";
Serial.begin(9600);
delay(3000);
Serial.println((int)s[0]);
Serial.println((int)s[1]);
Serial.println((int)s[2]);
}

void loop() {
}

で、65,66,67が出力されます。

投稿2019/03/11 13:35

mappy

総合スコア65

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

string.charAt(n)
文字列の先頭からn+1番目の文字を返します。

を使ってみました

void setup() { // put your setup code here, to run once: unsigned char i; char j; Serial.begin( 9600 ); Serial.println("Arduino Program Start !!"); String s ="ABCDEF"; for ( i=0 ; i<s.length() ; i++ ){ j = s.charAt(i); Serial.write(0x22); Serial.print( j );Serial.print("\" = ");Serial.println( j ,DEC ); } // for } // setup void loop() { // put your main code here, to run repeatedly: }

実行結果
Arduino Program Start !!
"A" = 65
"B" = 66
"C" = 67
"D" = 68
"E" = 69
"F" = 70

投稿2019/03/10 13:55

koujikuu

総合スコア401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

思いっきりエスパーして、数字の文字列から整数に変える方法

char s[]="321";
int a=s[0]-'0'; // aは3
a=s[1]-'0'; // aは2
a=s[2]-'0'; // aは1

ということでどーでしょうか

投稿2019/03/10 13:31

編集2019/03/10 13:58
y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問