arduino与android蓝牙通信

Arduino与android蓝牙通信。在做一个Arduino的项目,在Arduino的板子上装有温度传感器,然后希望通过蓝牙实时传输到android,请问怎么实现?

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
arduino如何读取蓝牙RSSI信号强度
arduino如何读取蓝牙RSSI信号强度,之后换算为0--1023的数值,通过蓝牙传至手机。
c#怎么和arduino上的蓝牙进行通信
我想让pc给我的小机器人发消息。我买了个蓝牙适配器和机器人上的蓝牙进行了连接,蓝牙配对成功后 有两个串口, 然后我尝试通过c#的SerialPorts和机器人连接,但失败了,两个都试了了下,报的错误是没找到。求解决方法 这是我的代码 ![图片说明](https://img-ask.csdn.net/upload/201712/11/1512985057_495975.png) ![图片说明](https://img-ask.csdn.net/upload/201712/11/1512984932_778324.png) 输出里也有COM21,但报错 ![图片说明](https://img-ask.csdn.net/upload/201712/11/1512984994_998124.png)
新人求解:Ardunio蓝牙模块:为什么我的得到的结果是这样子??
我用的Arduino UNO,蓝牙模块HC-06。 Arduino TX接蓝牙RX, Arduino RX接蓝牙TX。 Arduino 3.3v接蓝牙VCC, Arduino GND接蓝牙GND。 我的代码: void setup() { Serial.begin(9600); } void loop() { while(Serial.available()) { char message=Serial.read(); Serial.print(message); delay(2); } } 我在手机上输入的分别是:hello world、we are champion、I Love You、WDNMD、 hello world、we are champion、I Love You、WDNMD. 在串口看到的就是这样的(图),想问一下大神为什么会这样,要如何解决呢???![图片说明](https://img-ask.csdn.net/upload/201911/13/1573657816_273913.png)
Arduino 串行口通信死机
``` int servo1Pin=3; // 右肩膀控制的舵机 int servo2Pin=5; // 右胳膊控制的舵机 int servo3Pin=6; // 左手上下控制的舵机 Y int servo4Pin=9; // 左手左右控制的舵机 X int servo5Pin=10; // 左手抓握控制机械臂 int pulse1=1700; int pulse2=1600; int pulse3=1450; int pulse4=1700; int pulse5=500; unsigned long previousMillis=0; //起始时间 long interval=20; //20ms //初始位置 int angle[5]={190,190,190,190,280}; int temp[15]; /* int angle1=190; int angle2=190; int angle3=190; int angle4=190; int angle5=190; */ char stroke; //Serial接收标志位 int i=0; int flag=0; void setup() { // put your setup code here, to run once: pinMode(servo1Pin,OUTPUT); pinMode(servo2Pin,OUTPUT); pinMode(servo3Pin,OUTPUT); pinMode(servo4Pin,OUTPUT); pinMode(servo5Pin,OUTPUT); Serial.begin(9600); //开启Serial } void loop() { // put your main code here, to run repeatedly: if(Serial.available()>0) { stroke=Serial.read(); Serial.println(stroke); delay(20); if(stroke=='s') //起始标志为s { for(int i=0;i<5;i++) { temp[i]=Serial.read(); temp[i+1]=Serial.read(); temp[i+2]=Serial.read(); angle[i]= (temp[i]-48)*100+(temp[i+1]-48)*10+(temp[i+2]-48)*1; Serial.println(angle[i]); } } } for(int j=0;j<4;j++) { if(angle[j]>280) { Serial.println("太大了"); angle[j]=280; } if(angle[j]<100) { angle[j]=100;} } if(angle[4]==280) { pulse5=1000; } if(angle[4]==100) { pulse5=500; } /* for(int k=0;k<5;k++) { Serial.println(angle[k]); } */ pulse1=(int)map(angle[0],100,280,850,2600); pulse2=(int)map(angle[1],100,280,2400,800); pulse3=(int)map(angle[2],100,280,400,2500); pulse4=(int)map(angle[3],100,280,800,2600); //pulse5=(int)map(angle[4],100,280,500,2500); unsigned long currentMillis=millis(); if(currentMillis-previousMillis>interval) { previousMillis=currentMillis; updateServo(servo1Pin,pulse1); updateServo(servo2Pin,pulse2); updateServo(servo3Pin,pulse3); updateServo(servo4Pin,pulse4); updateServo(servo5Pin,pulse5); } } void updateServo(int pin,int pulse) { digitalWrite(pin,HIGH); delayMicroseconds(pulse); digitalWrite(pin,LOW); } ``` 我用C#做上位机与arduino做了一个机械臂系统 C#串行口发送数据 在刚运行的时候arduino运行十分流畅 但是过大概两三分钟 arduino就会卡死 且Rx Tx的灯都变成常亮而不是正常通信的时候的闪烁状态了 我是用arduino控制舵机 舵机单独供电 arduino USB供电 没有单独9V供电 通过commonitor监视当arduino死机的时候 C#发送数据正常 且降低发送频率运行时长会增加 但不会超过五分钟 具体该如何解决 arduino的代码是将C#数据转为int 并驱动舵机
arduino使用fpm11a在指纹识别部分出现收包错误是为什么?
我使用Adafruit Fingerprint Sensor Library上的案例程序,用代码enroll指纹已经注册成功了,并用那个成品软件都测试了一下,确定确实指纹已经录取了。然后我开始对指纹进行匹配,先用成品软件测试的,可以检测。然后又用案例中的fingerprint进行烧录对比,发现可以识别图像image taken,可以转换image converted,但是执行到fingerFastSearch()哪里出现了Communicarion error这是为什么? 使用的案例包是Adafruit Fingerprint Sensor Library
小白求教Arduino yun实例
刚学Arduino ,想要请问下Arduino yun实现与P C间的通信有实例吗?Arduino和Arduino yub间的区别是什么呢?希望可以分享下谢谢
关于arduino单片机串口通信的问题
我在做一个PC与UNO交互的小程序,大概就是PC发送数据到UNO,通过单片机处理后再返送PC,其中用到了串口通讯。 我的loop环节一开始是这样的 while(Serial.read()!='k'){} 直到接收到'k'才继续执行,PC端对应一个发送字符k的操作 每次刚点烧录,程序能正常运行。 把USB拔了再插上,就一直卡在这里了。。。。 重点就是,刚烧录之后可以正常运行,重新插电就GG PC端用的是windowsAPI,用CreatFile等等实现的对串口的操作 求指点。。。 void setup() { pinMode(8, OUTPUT); Serial.begin(9600); while(Serial.read()>=0){} } void loop() { while(Serial.read()!='k'){} 这是程序的开始部分
Arduino通过ESP8266怎么把串口数据发送给服务器在Mysql数据库显示?
Arduino通过ESP8266怎么把串口数据发送给服务器在Mysql数据库显示? 求代码!万分感谢!这个问题困扰小白很久了!
用arduino ide 写程序控制sim900a发送中文短信
为啥只能发送英文短信,发送中文只收到一个符号,用unicode转码后也不管用,求帮助 代码如下: void sendmessage(){ Serial.println("AT"); delay(2000); Serial.println("AT+CMGF=1"); delay(2000); Serial.println("AT+CSCS=“UCS2”"); delay(2000); Serial.println("AT+CSMP=17,167,2,25"); delay(2000); Serial.println("AT+CMGS=\"\u0031\u0037\u0038\u0036\u0033\u0035\u0032\u0033\u0038\u0034\u0036\"");//转码后的手机号 delay(2000); Serial.print("\u5bb6\u4e2d\u71c3\u6c14\u6cc4\u6f0f");转码后的中文短信 delay(2000); Serial.write(0x1A); }
Android接收arduino数据来控制打电话报错
用了android官方BLE的demo可以成功接收Arduino101板子传入的数据; 在原来的程序中直接加入打电话的代码,可以实现 ``` private void displayData(String data) { if (data != null) { mDataDisplay.setText(data); } button = (Button) findViewById(R.id.button); number=data; button.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:000000")); if (ActivityCompat.checkSelfPermission(DeviceControlActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { return; } startActivity(callIntent); } }); ``` ———————————————————————————————— 但是如果利用接收到的数据,就出现报错No Activity found to handle Intent { act=android.intent.action.CALL } ``` private void displayData(String data) { if (data != null) { mDataDisplay.setText(data); } button = (Button) findViewById(R.id.button); number=data; button.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { Intent callIntent = new Intent(Intent.ACTION_CALL); if(number.equals("00")) { callIntent.setData(Uri.parse("tel:000000")); }else if(number.equals("01")) { callIntent.setData(Uri.parse("tel:000001")); }else if(number.equals("02")) { callIntent.setData(Uri.parse("tel:000002")); }else if(number.equals("03")) { callIntent.setData(Uri.parse("tel:000003")); }else if(number.equals("04")) { callIntent.setData(Uri.parse("tel:000004")); }else if(number.equals("05")) { callIntent.setData(Uri.parse("tel:000005")); } if (ActivityCompat.checkSelfPermission(DeviceControlActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { return; } startActivity(callIntent); } }); ``` 日志: ``` 04-19 21:06:06.176 28375-28430/com.example.bledemo D/BluetoothLeScanner: onScanResult() - ScanResult{mDevice=98:4F:EE:0F:C5:A3, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=[0000180f-0000-1000-8000-00805f9b34fb], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=-2147483648, mDeviceName=BatteryMonitorSketch], mRssi=-35, mTimestampNanos=613094916898376} 04-19 21:06:06.196 28375-28399/com.example.bledemo D/ScanRecord: parseFromBytes 04-19 21:06:06.196 28375-28399/com.example.bledemo D/BluetoothLeScanner: onScanResult() - ScanResult{mDevice=98:4F:EE:0F:C5:A3, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=[0000180f-0000-1000-8000-00805f9b34fb], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=-2147483648, mDeviceName=BatteryMonitorSketch], mRssi=-35, mTimestampNanos=613094940227543} 04-19 21:06:06.221 28375-28399/com.example.bledemo D/ScanRecord: parseFromBytes 04-19 21:06:06.221 28375-28399/com.example.bledemo D/BluetoothLeScanner: onScanResult() - ScanResult{mDevice=98:4F:EE:0F:C5:A3, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=[0000180f-0000-1000-8000-00805f9b34fb], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=-2147483648, mDeviceName=BatteryMonitorSketch], mRssi=-35, mTimestampNanos=613094962124876} 04-19 21:06:06.246 28375-28375/com.example.bledemo I/System.out: ==position==0 04-19 21:06:06.246 28375-28375/com.example.bledemo D/BluetoothAdapter: stopLeScan() 04-19 21:06:06.251 28375-28375/com.example.bledemo I/Timeline: Timeline: Activity_launch_request id:com.example.bledemo time:163428963 04-19 21:06:06.266 28375-28375/com.example.bledemo D/BluetoothAdapter: stopLeScan() 04-19 21:06:06.266 28375-28375/com.example.bledemo D/BluetoothAdapter: scan not started yet 04-19 21:06:06.341 28375-28375/com.example.bledemo D/AbsListView: Get MotionRecognitionManager 04-19 21:06:06.351 28375-28375/com.example.bledemo D/Activity: performCreate Call secproduct feature valuefalse 04-19 21:06:06.351 28375-28375/com.example.bledemo D/Activity: performCreate Call debug elastic valuetrue 04-19 21:06:06.521 28375-28375/com.example.bledemo D/BluetoothGatt: connect() - device: 98:4F:EE:0F:C5:A3, auto: false 04-19 21:06:06.521 28375-28375/com.example.bledemo D/BluetoothGatt: registerApp() 04-19 21:06:06.521 28375-28375/com.example.bledemo D/BluetoothGatt: registerApp() - UUID=fd636193-9b1f-4767-b799-d2eae15bcfc0 04-19 21:06:06.561 28375-28375/com.example.bledemo D/BluetoothLeService: Trying to create a new connection. 04-19 21:06:06.561 28375-28399/com.example.bledemo D/BluetoothGatt: onClientRegistered() - status=0 clientIf=7 04-19 21:06:06.671 28375-28388/com.example.bledemo D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=7 device=98:4F:EE:0F:C5:A3 04-19 21:06:06.676 28375-28375/com.example.bledemo I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@19af1c7c time:163429389 04-19 21:06:06.681 28375-28388/com.example.bledemo I/BluetoothLeService: Connected to GATT server. 04-19 21:06:06.681 28375-28388/com.example.bledemo D/BluetoothGatt: discoverServices() - device: 98:4F:EE:0F:C5:A3 04-19 21:06:06.686 28375-28388/com.example.bledemo I/BluetoothLeService: Attempting to start service discovery:true 04-19 21:06:06.691 28375-28388/com.example.bledemo D/BluetoothGatt: onSearchComplete() = Device=98:4F:EE:0F:C5:A3 Status=0 04-19 21:06:06.941 28375-28375/com.example.bledemo V/ActivityThread: updateVisibility : ActivityRecord{3970b103 token=android.os.BinderProxy@21371bc6 {com.example.bledemo/com.example.bledemo.DeviceScanActivity}} show : false 04-19 21:06:08.126 28375-28375/com.example.bledemo D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 04-19 21:06:08.651 28375-28375/com.example.bledemo D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 04-19 21:06:08.796 28375-28375/com.example.bledemo D/BluetoothGatt: setCharacteristicNotification() - uuid: 00002a19-0000-1000-8000-00805f9b34fb enable: true 04-19 21:06:10.286 28375-28375/com.example.bledemo D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 04-19 21:06:10.366 28375-28375/com.example.bledemo D/Instrumentation: checkStartActivityResult :Intent { act=android.intent.action.CALL } 04-19 21:06:10.366 28375-28375/com.example.bledemo D/Instrumentation: checkStartActivityResult inent is instance of inent: 04-19 21:06:10.366 28375-28375/com.example.bledemo D/AndroidRuntime: Shutting down VM 04-19 21:06:10.371 28375-28375/com.example.bledemo E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.bledemo, PID: 28375 android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL } at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1499) at android.app.Activity.startActivityForResult(Activity.java:3942) at android.app.Activity.startActivityForResult(Activity.java:3889) at android.app.Activity.startActivity(Activity.java:4213) at android.app.Activity.startActivity(Activity.java:4181) at com.example.bledemo.DeviceControlActivity$5.onClick(DeviceControlActivity.java:299) at android.view.View.performClick(View.java:5184) at android.view.View$PerformClick.run(View.java:20910) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5942) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) ```
Arduino智能小车功能间如何进行蓝牙遥控选择转换
做了一辆Arduino的智能车,其功能目前是:四路循迹行驶,同时在行驶过程中遇到障碍物进行规避(超声波避障模块),在把循迹用黑胶布遮住使它四个传感器均检测不到时候可以进行蓝牙遥控,现在我想做成使用蓝牙来远程选择自动还是手动(自动循迹加超声波避障/蓝牙纯手动遥控),附上代码如下,求大神帮我解决下。 ``` int Left_motor_back=6; //左电机后退(IN1) int Left_motor_go=9; //左电机前进(IN2) int Right_motor_go=10; // 右电机前进(IN3) int Right_motor_back=11; // 右电机后退(IN4) const int SensorRight_1 = 7;//右外侧 const int SensorRight = 5; //右循迹红外传感器(P3.2 OUT1) const int SensorLeft = 4; //左循迹红外传感器(P3.3 OUT2) const int SensorLeft_1 = 2;//左外侧 //超声波测量数值定义 int Front_Distance = 0; int Left_Distance = 0; int Right_Distance = 0; int SL; //左循迹红外传感器状态 int SL_1; int SR; //右循迹红外传感器状态 int SR_1; int Echo = A0; // Echo回声脚(P2.0) int Trig = A1 ; // Trig 触发脚(P2.1) int Distance = 0; int servopin= 12;//设置舵机驱动脚到数字口2 int myangle;//定义角度变量 int pulsewidth;//定义脉宽变量 int val; const String GO = "1";//蓝牙遥控器发送信息代码定义 const String BACK = "2"; const String LEFT = "3"; const String RIGHT = "4"; const String STOP = "0"; const String SMALLLEFT = "5"; const String SMALLRIGHT = "6"; const String SLEFT = "7"; void setup() { Serial.begin(9600); // 初始化串口 //初始化电机驱动IO为输出方式 pinMode(Left_motor_go,OUTPUT); // PIN 6 (PWM) //初始化电机驱动IO为输出方式 pinMode(Left_motor_back,OUTPUT); // PIN 9 (PWM) pinMode(Right_motor_go,OUTPUT);// PIN 10 (PWM) pinMode(Right_motor_back,OUTPUT);// PIN 11 (PWM) pinMode(SensorRight, INPUT); //定义右循迹红外传感器为输入 pinMode(SensorLeft, INPUT); //定义左循迹红外传感器为输入 pinMode(SensorRight_1, INPUT); //定义右红外传感器为输入 pinMode(SensorLeft_1, INPUT); //定义左红外传感器为输入 //初始化超声波引脚 pinMode(Echo, INPUT); // 定义超声波输入脚 pinMode(Trig, OUTPUT); // 定义超声波输出脚 pinMode(servopin,OUTPUT);//设定舵机接口为输出接口 } //=======================智能小车的基本动作========================= // 前进 void run(int time) { digitalWrite(Right_motor_go,HIGH); // 右电机前进 digitalWrite(Right_motor_back,LOW); analogWrite(Right_motor_go,60);//PWM比例0~255调速,左右轮差异略增减 analogWrite(Right_motor_back,0); digitalWrite(Left_motor_go,HIGH); // 左电机前进 digitalWrite(Left_motor_back,LOW); analogWrite(Left_motor_go,60);//PWM比例0~255调速,左右轮差异略增减 analogWrite(Left_motor_back,0); delay(time * 10); //执行时间,可以调整 } //void brake(int time) //刹车,停车 void brake(int time) { digitalWrite(Right_motor_go,LOW); digitalWrite(Right_motor_back,LOW); digitalWrite(Left_motor_go,LOW); digitalWrite(Left_motor_back,LOW); delay(time * 10);//执行时间,可以调整 } //void brake(int time) //长时间刹车,停车 void brake_1() { digitalWrite(Right_motor_go,LOW); digitalWrite(Right_motor_back,LOW); digitalWrite(Left_motor_go,LOW); digitalWrite(Left_motor_back,LOW); //delay(time * 100);//执行时间,可以调整 } //void left(int time) //左转(左轮不动,右轮前进) void left(int time) { digitalWrite(Right_motor_go,HIGH); // 右电机前进 digitalWrite(Right_motor_back,LOW); analogWrite(Right_motor_go,110); analogWrite(Right_motor_back,0);//PWM比例0~255调速 digitalWrite(Left_motor_go,LOW); //左轮后退 digitalWrite(Left_motor_back,LOW); analogWrite(Left_motor_go,0); analogWrite(Left_motor_back,0);//PWM比例0~255调速 delay(time * 10); //执行时间,可以调整 } //void spin_left(int time) void sleft(int time) //左转(左轮后退,右轮前进) { digitalWrite(Right_motor_go,HIGH); // 右电机前进 digitalWrite(Right_motor_back,LOW); analogWrite(Right_motor_go,110); analogWrite(Right_motor_back,0);//PWM比例0~255调速 digitalWrite(Left_motor_go,LOW); //左轮后退 digitalWrite(Left_motor_back,HIGH); analogWrite(Left_motor_go,0); analogWrite(Left_motor_back,110);//PWM比例0~255调速 delay(time * 10); //执行时间,可以调整 } //void right(int time) //右转(右轮不动,左轮前进) void right(int time) { digitalWrite(Right_motor_go,LOW); //右电机后退 digitalWrite(Right_motor_back,LOW); analogWrite(Right_motor_go,0); analogWrite(Right_motor_back,0);//PWM比例0~255调速 digitalWrite(Left_motor_go,HIGH);//左电机前进 digitalWrite(Left_motor_back,LOW); analogWrite(Left_motor_go,110); analogWrite(Left_motor_back,0);//PWM比例0~255调速 delay(time * 10); //执行时间,可以调整 } //void spin_right(int time) void sright(int time) //右转(右轮后退,左轮前进) { digitalWrite(Right_motor_go,LOW); //右电机后退 digitalWrite(Right_motor_back,HIGH); analogWrite(Right_motor_go,0); analogWrite(Right_motor_back,110);//PWM比例0~255调速 digitalWrite(Left_motor_go,HIGH);//左电机前进 digitalWrite(Left_motor_back,LOW); analogWrite(Left_motor_go,110); analogWrite(Left_motor_back,0);//PWM比例0~255调速 // delay(time * 10); //执行时间,可以调整 } //void back(int time) //后退 void back(int time) { digitalWrite(Right_motor_go,LOW); //右轮后退 digitalWrite(Right_motor_back,HIGH); analogWrite(Right_motor_go,0); analogWrite(Right_motor_back,100);//PWM比例0~255调速 digitalWrite(Left_motor_go,LOW); //左轮后退 digitalWrite(Left_motor_back,HIGH); analogWrite(Left_motor_go,0); analogWrite(Left_motor_back,100);//PWM比例0~255调速 delay(time * 10); //执行时间,可以调整 } //========================================================== float Distance_test() // 量出前方距离 { digitalWrite(Trig, LOW); // 给触发脚低电平2μs delayMicroseconds(2); digitalWrite(Trig, HIGH); // 给触发脚高电平10μs,这里至少是10μs delayMicroseconds(10); digitalWrite(Trig, LOW); // 持续给触发脚低电 float Fdistance = pulseIn(Echo, HIGH); // 读取高电平时间(单位:微秒) Fdistance= Fdistance/58; //为什么除以58等于厘米, Y米=(X秒*344)/2 // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58 //Serial.print("Distance:"); //输出距离(单位:厘米) //Serial.println(Fdistance); //显示距离 //Distance = Fdistance; return Fdistance; } void servopulse(int servopin,int myangle)/*定义一个脉冲函数,用来模拟方式产生PWM值*/ { pulsewidth=(myangle*11)+500;//将角度转化为500-2480 的脉宽值 digitalWrite(servopin,HIGH);//将舵机接口电平置高 delayMicroseconds(pulsewidth);//延时脉宽值的微秒数 digitalWrite(servopin,LOW);//将舵机接口电平置低 delay(20-pulsewidth/1000);//延时周期内剩余时间 } void front_detection() { //此处循环次数减少,为了增加小车遇到障碍物的反应速度 for(int i=0;i<=5;i++) //产生PWM个数,等效延时以保证能转到响应角度 { servopulse(servopin,95);//模拟产生PWM } Front_Distance = Distance_test(); //Serial.print("Front_Distance:"); //输出距离(单位:厘米) // Serial.println(Front_Distance); //显示距离 //Distance_display(Front_Distance); } void left_detection() { for(int i=0;i<=15;i++) //产生PWM个数,等效延时以保证能转到响应角度 { servopulse(servopin,175);//模拟产生PWM } Left_Distance = Distance_test(); //Serial.print("Left_Distance:"); //输出距离(单位:厘米) //Serial.println(Left_Distance); //显示距离 } void right_detection() { for(int i=0;i<=15;i++) //产生PWM个数,等效延时以保证能转到响应角度 { servopulse(servopin,5);//模拟产生PWM } Right_Distance = Distance_test(); //Serial.print("Right_Distance:"); //输出距离(单位:厘米) //Serial.println(Right_Distance); //显示距离 } String readTtl() { String comdata = ""; while (Serial.available()) { comdata += char(Serial.read()); delay(2); } return comdata; } void loop() { while(1) { { //有信号为LOW 没有信号为HIGH SR = digitalRead(SensorRight);//有信号表明在白色区域,车子底板上L3亮;没信号表明压在黑线上,车子底板上L3灭 SL = digitalRead(SensorLeft);//有信号表明在白色区域,车子底板上L2亮;没信号表明压在黑线上,车子底板上L2灭 SL_1 = digitalRead(SensorLeft_1); SR_1 = digitalRead(SensorRight_1); if (SL == LOW&&SR==LOW&&SL_1==LOW && SR_1== LOW) run(10); //调用前进函数 else if (SL_1 == LOW && SL == LOW && SR==HIGH && SR_1== LOW ) // 右循迹红外传感器,检测到信号,车子向左偏离轨道,向右转 left(30); else if(SL_1==LOW && SL== HIGH&&SR == LOW &&SR_1==LOW) right(30); else if(SL_1==HIGH && SL == LOW && SR==LOW && SR_1==LOW) sright(30); else if(SL_1==LOW && SL == LOW && SR==LOW && SR_1==HIGH) // 左循迹红外传感器,检测到信号,车子向右偏离轨道,向左转 sleft(30); else if(SL_1 == LOW && SL == LOW && SR==HIGH && SR_1== HIGH) left(30); else if(SL_1==HIGH && SL== HIGH&&SR == LOW &&SR_1==LOW) right(30); //else //停止 // brake_1(); } front_detection();//测量前方距离 if(Front_Distance < 20)//数值为碰到障碍物的距离,可以按实际情况设置 { brake(50); back(60); brake(100); left_detection();//测量左边距障碍物距离 right_detection();//测量右边距障碍物距离 brake(10); if((Left_Distance < 40 ) &&( Right_Distance < 40 ))//当左右两侧均有障碍物靠得比较近 sleft(180);//旋转掉头根据具体情况调整执行时间 else if(Left_Distance > Right_Distance)//左边比右边空旷 { left(60);//左转 brake(10);//刹车,稳定方向 } else if(Left_Distance < Right_Distance)//右边比左边空旷 {right(60);//右转 brake(10);//刹车,再次判定 } else run(1);//无障碍物,直行 } // 蓝牙主代码 String s = readTtl(); if (s == GO ) run(70);//如果按GO键,小车前进,直到按STOP键停止 else if (s == LEFT ) left(65); else if (s == STOP ) brake_1(); else if (s == RIGHT ) right(70); else if (s == BACK ) back(65); else if (s == SMALLLEFT ) left(20); else if (s == SMALLRIGHT) right(20); else if (s == SLEFT) sleft(90); } } ```
arduino如何接受数字传感器的信号
学习arduino遇到点疑惑,请大家帮忙指点下怎么办? arduino使用dht22温湿度传感器按照参考教程需要导入一个头文件dht,使用时要调用相关函数,读出具体的温湿度,从而打印输出。 但是很多传感器并非为arduino设计,但是可以兼容使用。没有现成的头文件,这种情况怎么arduino如何接受数字信号呢? 我查了很多资料,只能查到数字引脚可以通过判断low还是high来输出0或者1,但是像温湿度传感器这样的,输出内容不会这么简单,至少是整数或者是小数,因此怎么样才能让arduino接收到数字传感器所发出的8bits数据呢 因为是初学者,对于传感器所说的Data bits不理解,这个8bits的到底能表达一个多大数据量呢,看起来不应该只是0和1,感觉应该更大一点
蓝牙多activity运作解决方法
我想让蓝牙在不同activity接收arduino资料及传送 不希望在切换时要重新连接 有没有大神能提供范例 让小弟我参考参考
用arduino实现温湿度传感器dht11,求大佬帮我看看代码,怎样写才能实现读取传感器信号?
``` int DHTpin=2; byte dat[5]; //------------------------------------------------------ byte read_data() { byte data; for(int i=0;i<8;i++) { if(digitalRead(DHTpin)==LOW) { while(digitalRead(DHTpin)==LOW) ; delayMicroseconds(30); if(digitalRead(DHTpin)==HIGH) data|=(1<<(7-1)); while(digitalRead(DHTpin)==HIGH) ; } } return data; } //------------------------------------------------------ void start_test(){ digitalWrite(DHTpin,LOW); delay(30); digitalWrite(DHTpin,HIGH); delayMicroseconds(40); pinMode(DHTpin,INPUT); while(digitalRead(DHTpin)==LOW) ; delayMicroseconds(80); for(int i=0;i<5;i++) dat[i]=read_data(); pinMode(DHTpin,OUTPUT); digitalWrite(DHTpin,HIGH); } void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(DHTpin,OUTPUT); } void loop() { // put your main code here, to run repeatedly: start_test(); for(int i=0;i<5;i++) { Serial.print("dat["); Serial.print(i); Serial.print("]="); Serial.print(dat[i]); Serial.print(' '); } delay(700); } ``` 为什么串口监视器上一直显示0![图片说明](https://img-ask.csdn.net/upload/202001/11/1578731026_362333.png) read_data()里的代码该怎么写?
arduino基于红外线控制
例如红外遥控小车,红外空调遥控器,遥控器上的按键对应着一个功能,如何通过模式切换使相同按键拥有两个不同的功能 下面的代码是基于红外线控制LCD1602 设置了两个功能按键,输入文字和输入数字,声明和调用了两个函数但是无法运行,希望大家能给出建议 ``` #include<IRremote.h> #include <IRremoteInt.h> #include <LiquidCrystal.h> LiquidCrystal lcd(11,10,9,8,7,6); #define RECV_PIN 13 IRrecv irrecv(RECV_PIN); decode_results results; void words(); void number(); void setup() { Serial.begin(9600); lcd.begin(16,2); Serial.println("Enabling IRin"); irrecv.enableIRIn(); Serial.println("Enabled IRin"); lcd.clear(); lcd.setCursor(0,0); } void words() { if (irrecv.decode(&results)) { if(results.value==0xFF30CF) {lcd.setCursor(2,0);lcd.print("Hello World!");delay(2000);lcd.clear();} else if(results.value==0xFF18E7) {lcd.setCursor(3,0);lcd.print("Tian Ji");delay(2000);lcd.clear();} else if(results.value==0xFF7A85) {lcd.setCursor(3,0);lcd.print("Da Xue");delay(2000);lcd.clear();} else if(results.value==0xFF10EF) {lcd.setCursor(3,0);lcd.print("Ren Ai");delay(2000);lcd.clear();} else if(results.value==0xFF38C7) {lcd.setCursor(3,0);lcd.print("Xue Yuan");delay(2000);lcd.clear();} else if(results.value==0xFF5AA5) {lcd.setCursor(3,0);lcd.print("Welcome!");delay(2000);lcd.clear();} else if(results.value==0xFF42BD) {lcd.setCursor(3,0);lcd.print("Ni Hao!");delay(2000);lcd.clear();} else if(results.value==0xFF4AB5) {lcd.write("Nice to meet you");delay(2000);lcd.clear();} else if(results.value==0xFF52AD) {lcd.setCursor(4,0);lcd.print("Bye-bye");delay(2000);lcd.clear();} } } void number() { lcd.leftToRight(); if(irrecv.decode(&results)) { if(results.value==0xFF30CF) {lcd.print("1");delay(100);} else if(results.value==0xFF18E7) {lcd.print("2");delay(100);} else if(results.value==0xFF7A85) {lcd.print("3");delay(100);} else if(results.value==0xFF10EF) {lcd.print("4");delay(100);} else if(results.value==0xFF38C7) {lcd.print("5");delay(100);} else if(results.value==0xFF5AA5) {lcd.print("6");delay(100);} else if(results.value==0xFF42BD) {lcd.print("7");delay(100);} else if(results.value==0xFF4AB5) {lcd.print("8");delay(100);} else if(results.value==0xFF52AD) {lcd.print("9");delay(100);} else if ( results.value==0xFF6897) {lcd.print("0");delay(100);} } } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value==0xFFE21D) {delay(1000);lcd.clear();lcd.print("screen opening...");delay(1000);lcd.clear();} else if (results.value==0xFFA25D) {lcd.setCursor(3,0);lcd.print("screen off");delay(1000);lcd.clear();} else if (results.value==0xFF629D) {lcd.clear();} else if (results.value==0xFF22DD) {lcd.setCursor(3,0);lcd.print("Input words:");delay(1000);lcd.clear();words();} else if (results.value==0xFF02FD) {lcd.setCursor(3,0);lcd.print("Input number:");delay(1000);lcd.clear();number();} irrecv.resume(); } delay(1000); } ``` ```
arduino 与新浪云的连接代码问题?
代码如下:#include "Arduino.h" #include <SPI.h> #include <Ethernet.h> char state = '0'; char c; byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; IPAddress ip(192,168,0,102); IPAddress myDns(192,168,0,1); EthernetClient client; char server[] = "1.zhinengzhushou.applinzi.com"; int sensrdata = 50; unsigned long lastConnectionTime = 0; boolean lastConnected = false; const unsigned long postingInterval = 30*1000; //The setup function is called once at startup of the sketch void setup() { // Add your initialization code here Serial.begin(9600); delay(1000); Ethernet.begin(mac, ip, myDns); Serial.print("My IP address: "); Serial.println(Ethernet.localIP()); pinMode(13, OUTPUT); pinMode(7, OUTPUT); } // The loop function is called in an endless loop void loop() { //Add your repeated code here client.flush(); while(client.available()!=0) { state = client.read(); if(state == '{'){ //关灯 0 Serial.println(state); digitalWrite(13, LOW); digitalWrite(7, HIGH); delay(9000); }else if(state == '}'){ //开灯 1 Serial.println(state); digitalWrite(13, HIGH); digitalWrite(7, LOW); delay(9000); } } //client.flush(); if (!client.connected() && lastConnected) { Serial.println("disconnecting 2."); client.stop(); } if(!client.connected() && (millis() - lastConnectionTime > postingInterval)) { if (client.connect(server, 80)) { Serial.println("connecting"); // send the HTTP PUT request: client.print("GET /downup.php?token=weixin&data="); client.print(sensrdata); client.println(" HTTP/1.1"); client.println("Host:1.zhinengzhushou.applinzi.com"); client.println("User-Agent: arduino-ethernet"); client.println("Connection: close"); client.println(); lastConnectionTime = millis(); }else { Serial.println("connection failed"); Serial.println("disconnecting 1."); client.stop(); } } lastConnected = client.connected(); } 出口的输出如下: My IP address: 192.168.0.102 connecting } { { { } { } { { } { } } } { { } { } } } disconnecting 2. connecting } { { 问题是 没有接收到微信端发送的数据,串口为什么还有输出,而且每个一循环,出现一个disconnecting 然后开始connecting ...... 是新浪云的问题 还是arduino 程序的问题 写了另一段代码 #include "Arduino.h" #include<SPI.h> #include<Ethernet.h> byte mac[]={0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; EthernetClient client; char server[]="1.zhinengzhushou.applinzi.com"; unsigned long lastConnectionTime=0; boolean lastConneted=false; const unsigned long postingInterval=3*1000; String returnValue=""; boolean ResponseBegin=false; void setup() { pinMode(7,OUTPUT); Serial.begin(9600); if (Ethernet.begin(mac)==0) { Serial.println("Failed to configure Ethernet using DHCP"); for(;;); } else { Serial.println("Ethernet configuration OK"); } } void loop() { if(client.available()) { char c = client.read(); if(c=='{') { ResponseBegin=true; } else if(c=='}') { ResponseBegin=false; } if(ResponseBegin) { returnValue+=c; } } if (returnValue.length()!=0&&(ResponseBegin==false)) { Serial.println(returnValue); if(returnValue.charAt(returnValue.length())=='}') { Serial.println("turn on the LED"); digitalWrite(7,HIGH); } else if(returnValue.charAt(returnValue.length())=='{') { Serial.println("turn off the LED"); digitalWrite(7,LOW); } returnValue=""; } if(!client.connected()&&lastConneted) { Serial.println(); Serial.println("disconnecting"); client.stop(); } if(!client.connected()&&(millis()-lastConnectionTime>postingInterval)) { Serial.println("good"); getdata(); } lastConneted=client.connected(); } void getdata(void) { if(client.connect(server,80)) { Serial.println("connnecting..."); client.print("GET /downup.php?token=weixin&data="); client.println(" HTTP/1.1"); client.println("Host:1.zhinengzhushou.applinzi.com"); client.println("User-Agent:arduino-ethernet"); client.println("Connection:close"); client.println(); } else { Serial.println("connection failed"); Serial.println(); Serial.println("disconnecting."); client.stop(); } lastConnectionTime=millis(); } 串口输出如下:Ethernet configuration OK good connnecting... {var closed=false,bdiv;var charset=document.charset||document.characterSet;var utf8=['该页面的提供者尚未完成','实名认证','您的访问可能存在风险'];var gbk=['⸮⸮ҳ⸮⸮⸮⸮ṩ⸮⸮⸮⸮δ⸮⸮⸮','ʵ⸮⸮⸮⸮֤','⸮⸮⸮ķ⸮⸮ʿ⸮⸮ܴ⸮⸮ڷ⸮⸮⸮'];var en=['The provider of this page is not','verified','there are risks when you visiting'];function banner(){var char=charset.toLowerCase(),lang='';switch(true){case char.indexOf('utf')==0:lang=utf8;break;case char.indexOf('gb')==0:lang=gbk;break;default:lang=en; {var e=event?event:window.event;x=e.clientX;y=e.clientY; {if(event&&!event.initMouseEvent){return {div.style.display='none';closed=true; {if(closed){clearInterval(tt);return {bdiv.parentNode.removeChild(bdiv) disconnecting good connnecting... {var closed=false,bdiv;var charset=document.charset||document.characterSet;var utf8=['该页面的提供者尚未完成','实名认证','您的访问可能存在风险'];var gbk=['⸮⸮ҳ⸮⸮⸮⸮ṩ⸮⸮⸮⸮δ⸮⸮⸮','ʵ⸮⸮⸮⸮֤','⸮⸮⸮ķ⸮⸮ʿ⸮⸮ܴ⸮⸮ڷ⸮⸮⸮'];var en=['The provider of this page is not','verified','there are risks when you visiting'];function banner(){var char=charset.toLowerCase(),lang='';switch(true){case char.indexOf('utf')==0:lang=utf8;break;case char.indexOf('gb')==0:lang=gbk;break;default:lang=en; {var e=event?event:window.event;x=e.clientX;y=e.clientY; {if(event&&!event.initMouseEvent){return {div.style.display='none';closed=true; {if(closed){clearInterval(tt);return {bdiv.parentNode.removeChild(bdiv) 问题是,代码错了 还是其他问题 还望指教。感激不尽。
arduino 红外遥控器设置功能按键
给红外遥控器设置两个功能按键,文字输入和数字输入,按下后再去按1-9按键可在LCD1602上显示数字或设置好的一串字母,红外遥控模块和LCD显示模块都没有问题,只是判断按键后执行语句中无法再次进行判断,功能键的功能无法执行,不知道有什么方法可以解决,代码如下,球球各位大神给指点一下 ``` #include <IRremote.h> #include <IRremoteInt.h> #include <LiquidCrystal.h> LiquidCrystal lcd(11,10,9,8,7,6); #define RECV_PIN 13 IRrecv irrecv(RECV_PIN); decode_results results; void words(); void number(); void setup() { Serial.begin(9600); lcd.begin(16,2); Serial.println("Enabling IRin"); irrecv.enableIRIn(); Serial.println("Enabled IRin"); lcd.clear(); lcd.setCursor(0,0); } void words() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if(results.value==0xFF30CF) {lcd.setCursor(2,0);lcd.print("Hello World!");delay(2000);lcd.clear();} else if(results.value==0xFF18E7) {lcd.setCursor(3,0);lcd.print("Tian Ji");delay(2000);lcd.clear();} else if(results.value==0xFF7A85) {lcd.setCursor(3,0);lcd.print("Da Xue");delay(2000);lcd.clear();} else if(results.value==0xFF10EF) {lcd.setCursor(3,0);lcd.print("Ren Ai");delay(2000);lcd.clear();} else if(results.value==0xFF38C7) {lcd.setCursor(3,0);lcd.print("Xue Yuan");delay(2000);lcd.clear();} else if(results.value==0xFF5AA5) {lcd.setCursor(3,0);lcd.print("Welcome!");delay(2000);lcd.clear();} else if(results.value==0xFF42BD) {lcd.setCursor(3,0);lcd.print("Ni Hao!");delay(2000);lcd.clear();} else if(results.value==0xFF4AB5) {lcd.write("Nice to meet you");delay(2000);lcd.clear();} else if(results.value==0xFF52AD) {lcd.setCursor(4,0);lcd.print("Bye-bye");delay(2000);lcd.clear();} } } void number() { lcd.leftToRight(); if(irrecv.decode(&results)) { Serial.println(results.value, HEX); if(results.value==0xFF30CF) {lcd.print("1");delay(100);} else if(results.value==0xFF18E7) {lcd.print("2");delay(100);} else if(results.value==0xFF7A85) {lcd.print("3");delay(100);} else if(results.value==0xFF10EF) {lcd.print("4");delay(100);} else if(results.value==0xFF38C7) {lcd.print("5");delay(100);} else if(results.value==0xFF5AA5) {lcd.print("6");delay(100);} else if(results.value==0xFF42BD) {lcd.print("7");delay(100);} else if(results.value==0xFF4AB5) {lcd.print("8");delay(100);} else if(results.value==0xFF52AD) {lcd.print("9");delay(100);} else if ( results.value==0xFF6897) {lcd.print("0");delay(100);} } } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value==0xFFE21D) {delay(1000);lcd.clear();lcd.print("screen opening...");delay(1000);lcd.clear();} else if (results.value==0xFFA25D) {lcd.setCursor(3,0);lcd.print("screen off");delay(1000);lcd.clear();} else if (results.value==0xFF629D) {lcd.clear();} else if (results.value==0xFF22DD) {lcd.setCursor(3,0);lcd.print("Input words:");delay(1000);lcd.clear();words();} else if (results.value==0xFF02FD) {lcd.setCursor(3,0);lcd.print("Input number:");delay(1000);lcd.clear();number();} irrecv.resume(); } delay(1000); } ```
Arduino串口通信和数码管问题
本人做的项目需要串口通信,根据读取不同的值在数码管上显示不同的数字 ``` char buf; //定义串口发送的内容 //设置阴极接口 int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; int g = 7; int p = 8; //设置阳极接口 int d4 = 9; int d3 = 10; int d2 = 11; int d1 = 12; unsigned char num[17][8] = { //a b c d e f g h {0, 0, 0, 0, 0, 0, 1, 1}, //0 {1, 0, 0, 1, 1, 1, 1, 1}, //1 {0, 0, 1, 0, 0, 1, 0, 1}, //2 {0, 0, 0, 0, 1, 1, 0, 1}, //3 {1, 0, 0, 1, 1, 0, 0, 1}, //4 {0, 1, 0, 0, 1, 0, 0, 1}, //5 {0, 1, 0, 0, 0, 0, 0, 1}, //6 {0, 0, 0, 1, 1, 1, 1, 1}, //7 {0, 0, 0, 0, 0, 0, 0, 1}, //8 {0, 0, 0, 0, 1, 0, 0, 1}, //9 {1, 1, 1, 0, 1, 1, 1, 0}, //A {1, 1, 1, 1, 1, 1, 1, 0}, //B {1, 0, 0, 1, 1, 1, 0, 0}, //C {1, 1, 1, 1, 1, 1, 0, 0}, //D {1, 0, 0, 1, 1, 1, 1, 0}, //E {1, 0, 0, 0, 1, 1, 1, 0}, //F {0, 0, 0, 0, 0, 0, 0, 0}, //. }; void setup() { Serial.begin(9600); //设置比特率,此行若去掉则数码管正常显示 pinMode(d1, OUTPUT); pinMode(d2, OUTPUT); pinMode(d3, OUTPUT); pinMode(d4, OUTPUT); pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(p, OUTPUT); } void loop() { buf = Serial.read(); if (buf == 'a') { for (int q = 0; q < 125; q++) { Display(1, 0); Display(2, 0); Display(3, 0); Display(4, 0); } } } void Display(unsigned char com, unsigned char n) //显示函数,com可选数值范围1-4,num可选数值范围0-9 { digitalWrite(a, HIGH); //去除余晖 digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, HIGH); digitalWrite(p, HIGH); switch (com) //选通位选 { case 1: digitalWrite(d1, HIGH); //选择位1 digitalWrite(d2, LOW); digitalWrite(d3, LOW); digitalWrite(d4, LOW); break; case 2: digitalWrite(d1, LOW); digitalWrite(d2, HIGH); //选择位2 digitalWrite(d3, LOW); digitalWrite(d4, LOW); break; case 3: digitalWrite(d1, LOW); digitalWrite(d2, LOW); digitalWrite(d3, HIGH); //选择位3 digitalWrite(d4, LOW); break; case 4: digitalWrite(d1, LOW); digitalWrite(d2, LOW); digitalWrite(d3, LOW); digitalWrite(d4, HIGH); //选择位4 break; default: break; } digitalWrite(a, num[n][0]); //a查询码值表 digitalWrite(b, num[n][1]); digitalWrite(c, num[n][2]); digitalWrite(d, num[n][3]); digitalWrite(e, num[n][4]); digitalWrite(f, num[n][5]); digitalWrite(g, num[n][6]); digitalWrite(p, num[n][7]); } ``` 其中,加上Serial.begin(9600); 之后,数码管最上边一段不会显示 ![图片说明](https://img-ask.csdn.net/upload/201904/05/1554472813_148878.jpg) 去掉的话就可正常显示 ![图片说明](https://img-ask.csdn.net/upload/201904/05/1554472831_155374.jpg) 请问各位大佬,这是怎么回事?该怎么改?
arduino nuo板子能改造成FT232 USB UART Board用么
原来有块USB UART的板子,可与连接传感器和电脑,然后通过串口监视读取传感器每秒输出的内容,但是现在我用的FT232进水牺牲了,手头有块arduino nuo,如果直接 连接的传感器话,串口监视那里什么都没有,请问下该怎么改造才能才能让arduino nuo具备这种功能呢,有没有相应的驱动,我刚学arduino的时候印象有相应的驱动,但现在时间长了不是很确定,求各位大佬帮助一二
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
实战:如何通过python requests库写一个抓取小网站图片的小爬虫
有点爱好的你,偶尔应该会看点图片文字,最近小网站经常崩溃消失,不如想一个办法本地化吧,把小照片珍藏起来! 首先,准备一个珍藏的小网站,然后就可以开始啦! 第一步 我们先写一个获取网站的url的链接,因为url常常是由page或者,其他元素构成,我们就把他分离出来,我找到的网站主页下有图片区 图片区内有标题页,一个标题里有10张照片大概 所以步骤是: 第一步:进入图片区的标题页 def getH...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问