Está en la página 1de 24

 (/) Circuits (/circuits/) Workshop (/workshop/) Craft (/craft/) Cooking (/cooking/) Living (/living/) Outside (/outside/)

Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Teachers (/teachers/)
Descargar
Log InFavorito
w
(/account/login/)
|
Sign Up (/account/register/)
Lo hice

instructables (/circuits/) Projects (/circuits/projects/) Contests (/contest/) Hagamos...


circuits 

Oscilloscope in a Matchbox - Arduino


By Peter Balch (/member/Peter+Balch/)
in Circuits (/circuits/) > Electronics (/circuits/electronics/projects/) 84.853 463 137 Featured

Download Favorite

(https://content
auto=webp&frame=1&fit=bounds&md=6c7996bea5ca89b93697c14b11e1e3e1)
instructables com/ORIG/FLT/Z1JO/JLWKXFE2/FLTZ1JOJLWKXFE2 png?

(https://content
auto=webp&frame=1&fit=bounds&md=aeafd7f82c003b3d7619f6688ad7387e)
instructables com/ORIG/FOQ/874G/JLWKXFD6/FOQ874GJLWKXFD6 jpg? auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=cee9140af8082a33a9fa6410da387ca6
(https://content instructables com/ORIG/FXM/WFCV/JLWKXFD7/FXMWFCVJLWKXFD7 jpg?

(/member/Peter+Balch/)

More by
By Peter Balch the author:
Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/)
(/member/Peter+Balch/) Seguir (/member/Peter+Balch/) Descargar
Favorito
w Lo hice

Follow

Why would I want a tiny oscillscope? I've got a room full of electronic Stuff including four
oscillscopes. But it's a fuss using them. It would be nice to have something that fits in my pocket,
that sits next to the circuit I'm working on and that's as easy to use as a multimeter.

Este osciloscopio cuesta el precio de un Arduino Nano (£ 2 y ​una pantalla (£ 3) más unos
centavos para resistencias, etc. Su especificación es:

● max 1M muestras/segundo, min 1000sps


● 8 bits por muestra
● CC 0-5 V; CA +/- 550mV, CA +/- 117mV, CA +/- 25mV
● USB "PC scope" o pantalla integrada
● podría ser alimentado por batería
● pantalla lógica opcional
● medidor de frecuencia opcional
● voltímetro opcional
● generador de señal opcional

Principalmente, lo que quiero de un osciloscopio es saber: ¿está presente la señal?


Aproximadamente cuanto mide? ¿Y aproximadamente cuál es su frecuencia? No es frecuente
que realmente necesite todas las campanas y silbatos de un osciloscopio de banco adecuado.

¿Qué tan bien funciona? A tasas de muestreo más bajas es bastante razonable. Pero a 1 millón
de muestras/segundo es bastante pobre. Puede ver que hay una señal y ver su frecuencia, pero
el eje y es bastante tosco. Realmente solo debería usarlo para audio (a 20 kHz) en el modo
analógico, pero 1 Msps funciona bien en el modo lógico. Después de todo, es solo un Arduino
Nano, por lo que "es como un perro que camina sobre sus patas traseras. No está bien hecho,
pero te sorprende encontrarlo".

Hace un par de años, hice una "estación de desarrollo": una caja de plástico con una placa de
prueba sin soldadura en la parte superior y un convertidor serie USB, un programador PIC, un
voltímetro y un analizador lógico en el interior. Mi "banco de trabajo" se ha reducido de varios
metros cuadrados a 15 cm cuadrados. Ahora también tiene su propio osciloscopio. Publicaré un
Instructable para la "estación de desarrollo" muy pronto.

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 1: muestreo a 1 millón de muestras por segundo


Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

(https://content
auto=webp&frame=1&fit=bounds&md=c18ed2a45a29a53638cb9d03ef943ff1)
instructables com/ORIG/FE3/CN9O/JLWKXFCK/FE3CN9OJLWKXFCK png?

Llamemos a este osciloscopio "ArdOsc" (porque ese es el nombre del archivo INO).

Hace seis años Cristiano Lino Fontana publicó un Instructable para su diseño Girino
(https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/) .

(https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/)

En cierto modo funciona, pero tiene problemas. En particular, su frecuencia de muestreo


máxima confiable es de alrededor de 37 ksps (a 75 ksps ocasionalmente se congela) y el
disparador no parece funcionar correctamente. Tampoco tiene pantalla.

El Girino es lento porque usa interrupciones. Las interrupciones son lentas debido al código
necesario para guardar y restaurar registros. Las interrupciones son peligrosas porque pueden
dar como resultado un software inestable con errores que ocurren solo en raras ocasiones. He
estado escribiendo código incrustado durante 40 años y evito las interrupciones siempre que
puedo. Sondeo bueno, interrupciones malas. Preste atención a mis palabras.

Entonces, ArdOsc deshabilita todas las interrupciones, entra en un ciclo cerrado y toma los datos
del ADC cuando los necesita. Si el ADC no ha terminado: lástima, solo dame lo que tienes. Toma
1000 muestras (un byte cada una), luego vuelve a habilitar las interrupciones y envía los bytes a
la PC a través del puerto serie a 115200 baudios, o toma 128 muestras y las muestra en su
pantalla.

El Girino Instructable describe el Arduino ADC con gran detalle. Si está interesado, léalo y lea la
hoja de datos de Atmega328p. Sólo te voy a decir el esquema.

El Arduino ADC utiliza "aproximación sucesiva". Mide el bit más significativo: ¿es 0 o 1? Habiendo
obtenido eso, compara su "respuesta hasta ahora" con el voltaje de entrada y mide el siguiente
bit más significativo. Luego el siguiente. Y así sucesivamente para 10 bits. Los bits se almacenan
encerillas
el registro ADCH (losBalch
primeros 8 bits) Balch/)
y ADCLSeguir
(los siguientes dos bits. Solo quiero 8 bits, así
Osciloscopio en una caja de - Arduino por Peter (/member/Peter Descargar
Favorito
w Lo hice

que ignoro ADCL.

El ADC establece una bandera cuando mide los 10 bits. Pero solo quiero 8 bits, así que ignoro la
bandera y leo ADCH ya sea que el ADC esté terminado o no. Originalmente pensé que eso
significaba que obtendría la "respuesta hasta ahora", pero no es así. La "respuesta hasta ahora" se
almacena en otro lugar y todo lo que obtenemos es la última respuesta cargada en ADCH. Eso
significa que en el modo 1Msps, cada conjunto sucesivo de 4 muestras es idéntico. El boceto de
Arduino los suaviza para que se vean bien, pero no se deje engañar: está viendo 250 ksps.
(Gracias a AndrewJ177 por señalarlo; consulte la discusión a continuación).

Se necesita tiempo para medir cada bit. Ese pulso de sincronización proviene de dividir el reloj
de Atmega (16 MHz) por un valor de "preescalador": 2, 4, 8, 16, 32, 64 o 128. Si configura el
preescalador en 2, eso es 0.125uS, que es demasiado corto para el ADC para hacer su
comparación correctamente, es de muy mala calidad. Prescaler = 4, significa 0.25uS que
funciona, el resultado es ruidoso. Prescaler=8, significa 0.5uS que es bastante razonable para 8
bits. En general, cuanto más le des al ADC por bit, mejor funcionará.

Pero si permite el ADC, digamos, 1uS por bit, entonces tomará 8uS por byte, que es 125ksps,
bastante lento. Si configura el preescalador demasiado bajo, solo obtendrá los pocos bits
superiores convertidos correctamente y el gráfico resultante tiene grandes pasos irregulares. Si
configura el preescalador demasiado alto, tendrá que esperar mucho tiempo para la conversión.

Entonces, es una compensación entre el tiempo por bit y las muestras por segundo.

También debemos considerar cuánto tarda la señal de entrada en cambiar el voltaje en el


capacitor de muestreo y retención del ADC. No estamos cambiando de canal antes de cada
conversión, por lo que el tiempo de carga no tiene que ser tan largo como sugiere la
documentación de Atmel, pero aún hay un efecto. El osciloscopio es decente hasta 20 kHz, pero
luego la respuesta se reduce. Puede ver una onda sinusoidal de 50 kHz, pero tiene un cuarto del
tamaño que debería tener.

El código ArdOsc solo tiene un ciclo que tiene exactamente la longitud correcta para muestrear
a 1 Msps, es decir, se necesitan 16 ciclos de reloj alrededor del ciclo. Otro ciclo más complicado
hace tiempos de muestra más largos.

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 2: El osciloscopio más simple

(https://content
auto=webp&frame=1&fit=bounds&md=1e9e126067b19548f043ce164c6a85df)
instructables com/ORIG/FY2/FZYE/JLWKXFEK/FY2FZYEJLWKXFEK png?
Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

(https://content
auto=webp&frame=1&fit=bounds&md=f19d158199436b92cbff519582d6d931)
instructables com/ORIG/F0B/4M4W/JM0V0QQ7/F0B4M4WJM0V0QQ7 png?

El ArdOsc más simple consiste en un Arduino Nano (328p 16MHz) 4 resistencias y 3


condensadores.

El osciloscopio se alimenta desde una conexión USB y transmite tramas de datos a la PC a través
de USB.

La señal de entrada se alimenta al pin A0 ADC. Una resistencia de 10k brinda cierta protección al
Atmega en caso de voltajes extremos. Los pines Atmega tienen diodos que evitan que su
entrada supere los Vcc (5V) o los 0V. Los diodos pueden conducir hasta 1 mA, por lo que la señal
de entrada del osciloscopio puede variar con seguridad entre -10 V y +15 V. La impedancia de
entrada del pin ADC es de alrededor de 100M y 14pF, por lo que los 10k adicionales tienen poco
efecto en la precisión del ADC.

El ADC lee el voltaje del pin A0 usando Vcc como voltaje de referencia, por lo que la medición es
de 0V a 5V. (En realidad, es de 0 a Vcc*254/255). Desafortunadamente, Vcc rara vez es
exactamente 5 V, por lo que el programa lee el valor real de Vcc y dibuja la retícula de la
"pantalla del osciloscopio" de manera adecuada.

La entrada también se alimenta a través de un capacitor de 100 nF y al pin ADC A1. A1 está
conectado a 0.55V a través de una resistencia de 1M. Por lo tanto, el pin A1 ve el componente de
CA de la señal de entrada centrado en 0,55 V.
Elcerillas
ADC lee el voltaje delBalch
pin (/member/Peter
A1 utilizandoBalch/)
el voltaje de referencia interno de 1,1Descargar
V, por lo
queFavorito
la
Osciloscopio en una caja de - Arduino por Peter Seguir
w Lo hice

medición es de -0,55 V a +0,55 V.

Los 0.55V se generan con un divisor de potencial del pin 3V3 del Nano. El voltaje del pin 3V3 es
mucho más estable que el "5V" de una conexión USB. La salida del pin 3V3 no es exactamente
3,3 V, por lo que tendrá que recortar el divisor de potencial para dar 0,55 V. Conecte la entrada
del osciloscopio a tierra y vea qué "voltaje" muestra el rango de CA. Ajuste R1 hasta que la línea
esté en el centro de la pantalla; necesitaba R1 = 33k.

He mostrado un diseño de stripboard para el circuito. El stripboard es del mismo tamaño que el
Arduino Nano y forman un sándwich. La parte inferior del Nano está al lado del lado de cobre
del tablero (por lo que en el diagrama, el Nano se muestra desde abajo). Suelde algunos pines
en el stripboard, luego coloque el Nano sobre los pines y suéldelos al Nano. En mi diagrama, el
cobre del stripboard se muestra en cian. Las líneas rojas son enlaces de cables en el tablero o
cables flexibles que salen del tablero para señales y energía.

ArdOsc3 (PCB).pdf (https://content.instructables.com/ORIG/FK2/6BMI/JLWKXFC7/FK26BMIJLWKXFC7.pdf)


Descargar (https://content.instructables.com/ORIG/FK2/6BMI/JLWKXFC7/FK26BMIJLWKXFC7.pdf)

ArdOsc3 (Esquema).pdf
(https://content.instructables.com/ORIG/FOD/SF0X/JLWKXFC8/FODSF0XJLWKXFC8.pdf)
Descargar
(https://content.instructables.com/ORIG/FOD/SF0X/JLWKXFC8/FODSF0XJLWKXFC8.pdf)

(https://content.instructables.com/ORIG/F25/T138/JM0V0QQB/F25T138JM0V0QQB.ino)
ArdOsc1.inoDescargar (https://content.instructables.com/ORIG/F25/T138/JM0V0QQB/F25T138JM0V0QQB.ino)

(https://content.instructables.com/ORIG/FXB/1BKM/JN28BR0J/FXB1BKMJN28BR0J.zip)
ArdOsc1.zipDescargar (https://content.instructables.com/ORIG/FXB/1BKM/JN28BR0J/FXB1BKMJN28BR0J.zip)

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 3: amplificación de la señal

(https://content
auto=webp&frame=1&fit=bounds&md=6eac9d8ba873af8f1b38a478e8a0c811)
instructables com/ORIG/FKK/WX1J/JLWKXFCB/FKKWX1JJLWKXFCB png?
Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

El osciloscopio "más simple" tiene dos rangos de entrada:

● 0V a 5V
● -0,55 V a +0,55 V

pero muchas señales que nos interesan son más pequeñas que eso. Entonces podemos agregar
dos etapas de amplificación.

Un amplificador operacional dual LM358 amplifica la señal de CA en A1. Los amplificadores


operacionales están acoplados a CA y ambas entradas están centradas alrededor de 0,55 V.
Ambas etapas del amplificador operacional tienen una ganancia de poco menos de 5x. Sus
salidas van a A2 y A3 para que Atmega pueda elegir qué señal muestrear.

El osciloscopio ahora tiene cuatro rangos de entrada:

● 0V a 5V
● -0,55 V a +0,55 V
● -117mV a +117mV
● -25mV a +25mV

Utiliza el mismo archivo INO y exe que "Simplest".

La ventaja de centrar la señal de CA alrededor de 0,55 V es que la señal del amplificador


operacional se mantiene baja. La salida LM358 no puede estar dentro de los 1,5 V de Vcc;
entonces su rango es de 0V a 3.5V - terrible.

He mostrado un diseño de stripboard para el circuito. Hay dos stripboards: uno para el Nano y
otro para el LM358. Deben formar un sándwich. Las tarjetas se muestran desde el lado de los
componentes. Finos alambres flexibles unen las dos tablas. Fije las tablas con almohadillas
adhesivas, separadores soldados o lo que sea. En mi diagrama, el cobre del stripboard se
muestra en cian. Las líneas rojas son enlaces de cables en el stripboard o cables flexibles que
unen los tableros. No he mostrado los "cables de prueba".

Una vez más, es posible que deba recortar el divisor de potencial para dar 0,55 V. Conecte la
entrada del osciloscopio a tierra y ajuste R9 hasta que la línea esté en el centro de la pantalla;
necesitaba R9 = 33k.
Puede
cerillashaber unpor
problema
Peter Balchcon el LM358.Balch/)
Si la señal es más grande de lo que el Descargar
LM358 puede
Osciloscopio en una caja de - Arduino (/member/Peter Seguir
Favorito
w Lo hice

manejar, la salida del LM358 está distorsionada. Debería usar la configuración de mayor
ganancia para observar señales pequeñas. Si los usa en señales grandes, se distorsionarán.
Podría probar un chip mejor si tiene uno: el LM358 es un chip bastante pobre.

nodisp ArdOsc2 (PCB).pdf


(https://content.instructables.com/ORIG/FON/06A0/JLWKXFCL/FON06A0JLWKXFCL.pdf)
Descargar
(https://content.instructables.com/ORIG/FON/06A0/JLWKXFCL/FON06A0JLWKXFCL.pdf)

nodisp ArdOsc2 (Esquema).pdf


(https://content.instructables.com/ORIG/F7W/2VQI/JLWKXFCM/F7W2VQIJLWKXFCM.pdf)
Descargar
(https://content.instructables.com/ORIG/F7W/2VQI/JLWKXFCM/F7W2VQIJLWKXFCM.pdf)

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 4: pantalla lógica

(https://content
auto=webp&frame=1&fit=bounds&md=cd2c859d488cbb587c73dd34d274ce9a)
instructables com/ORIG/FXU/S241/JLWKXFCF/FXUS241JLWKXFCF png?

A menudo, se trata de niveles lógicos: ¿podría el osciloscopio mostrar algunos canales de


"lógica"? Sí, y es mucho más fácil que jugar con el ADC.

¿Vale la pena? Probablemente no, pero es fácil hacerlo, ¿por qué no?

El osciloscopio ahora tiene cinco rangos de entrada:

● 0V a 5V
● -0,55 V a +0,55 V
● -117mV a +117mV
● -25mV a +25mV
● Lógica

En el modo "Lógico", se pueden conectar cuatro canales de lógica a los pines Arduino D8, D9,
D10 y D11. Se muestran como cuatro líneas en la pantalla.

D8 a D11 corresponden a los pines 0 a 3 del Puerto B del chip Atmega328p. El chip lee todo el
Puerto B en su búfer de muestra en lugar de la salida ADC en el registro ADCH.
Encerillas
el modo 1Msps, la frecuencia máximaBalch/)
teóricaSeguir
que podrá ver es 500kHz, peroDescargar
todo lo
que Favorito
Osciloscopio en una caja de - Arduino por Peter Balch (/member/Peter
w Lo hice

obtendrá es una barra sólida de "cambios de estado". En la práctica, una señal de 250 kHz es más
fácil de ver.

Si no desea la entrada "lógica", no incluya los conectores de D8 a D11. En el archivo INO,


establezca la constante bool bHasLogic en falso. (Intenté volver a escribir el código para usar
#define en lugar de bool const, pero fue un desastre).

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 5: El gatillo

(https://content
auto=webp&frame=1&fit=bounds&md=77fd6c4b5385290ab52462dceaee2890)
instructables com/ORIG/FU8/WZO0/JLWKXFC9/FU8WZO0JLWKXFC9 png?

Digamos que está viendo una forma de onda repetitiva, por ejemplo, una onda sinusoidal. Es
bueno si el osciloscopio lo muestra en el mismo lugar de la pantalla para cada barrido. Por lo
tanto, el barrido del osciloscopio debe activarse para comenzar, por ejemplo, cuando la onda
pasa de negativo a positivo.

Al principio traté de usar el comparador para activar el barrido (es decir, comenzar a recopilar
datos) como lo hace el Girino. Parece ideal pero resulta tener inconvenientes. Me decidí por un
voltaje de activación fijo de 0,55 V, la mitad de la señal de CA. El Atmel le permite conectar el
comparador al canal ADC actual. Suena bien. Pero hay que apagar el ADC y, cuando se produzca
el disparo, volver a encenderlo. El ADC tarda un tiempo en iniciarse. No tan bien.

Así que tomo la salida simple: ejecutar el ADC y observar los valores que produce. Cuando pasen
de menos de la mitad a más de la mitad, comience el barrido.

En el modo "Lógico", D8 se utiliza como disparador.


Sicerillas
no hay señal, por
el osciloscopio debería funcionar libremente. Para iniciar un barrido después de
Osciloscopio en una caja de - Arduino Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

esperar un rato. Elegí una espera máxima de 250mS. El programa inicializa el Temporizador 1 (un
temporizador de 16 bits) y luego espera hasta que haya contado un número suficiente de tics.
Simplemente miro el contador del Timer1; debería haber una mejor manera de hacerlo con
banderas, pero es muy complicado y no pude hacer que funcionara al 100% de manera
confiable.

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 6: salida de señal de prueba

(https://content
auto=webp&frame=1&fit=bounds&md=f6a1fbdf692d6c5543d5b8adbec66915)
instructables com/ORIG/F3J/KQG4/JLWKZ3GM/F3JKQG4JLWKZ3GM png?

De vez en cuando necesita una señal para probar cualquier circuito que esté construyendo.
Muchas personas ya tendrán un generador de señales.

El circuito ArdOsc puede proporcionar una onda cuadrada en las siguientes frecuencias:

● 31250/1 = 31250Hz
● 31250/8 = 3906Hz
● 31250/32 = 977Hz
● 31250/64 = 488Hz
● 31250/128 = 244Hz
● 31250/256 = 122Hz
● 31250/1024 = 31Hz

La señal de prueba se genera en el pin D3.

Si no desea la salida de "señal de prueba", no incluya los conectores a D3. En el archivo INO,
establezca la constante bool bHasTestSignal en falso.

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 7: Protocolo en serie


Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

(https://content
auto=webp&frame=1&fit=bounds&md=ba4d38e7f932548924085333cf7eda3e)
instructables com/ORIG/FBT/NKII/JM0V0R7A/FBTNKIIJM0V0R7A png?

El osciloscopio transmite tramas de datos a la PC a través del cable USB como si fuera un flujo de
datos en serie a 115200 baudios, 8 bits, sin paridad.

La PC puede enviar los dos tipos de comandos al osciloscopio. Los comandos en minúsculas son
bytes individuales:

● 'a' establece el eje x en "1mS" = 1Msps


● 'b' establece el eje x en "2mS"
● 'c' establece el eje x en "5mS"
● 'd' establece el eje x en "10mS"
● 'e' establece el eje x en "20mS"
● 'f' establece el eje x en "50mS"
● 'g' establece el eje x en "100mS"
● 'j' establece el eje y en 5V
● 'k' establece el eje y en 0,5 V
● 'l' establece el eje y en 0,1 V 'm' establece el eje y en 200 mV
● 'n' establece el modo en "Lógica"
● 'p' establece el gatillo en caída
● 'q' establece el gatillo en Ascendente
● 'r' establecer señal de prueba Off
● 's' establecer señal de prueba 31250Hz
● 't' establecer señal de prueba 3906Hz
● 'u' establecer señal de prueba 976Hz
● 'v' establecer señal de prueba 488Hz
● 'w' establecer señal de prueba 244Hz
● 'x' establecer señal de prueba 122Hz
'y' establecer
Osciloscopio en una caja de●cerillas señal
- Arduino por deBalch
Peter prueba 30Hz Balch/)
(/member/Peter Seguir Descargar
Favorito
w Lo hice

● barrido 'z' y envío de datos

Los datos de un barrido se envían como:

● 0xAA
● 0xBB
● 0xCC
● 1000 bytes de datos

El programa responde a cada comando transmitiendo un byte Ack - "@".

La biblioteca Arduino Serial utiliza interrupciones para leer la entrada serial. Las entradas se
apagan durante un barrido para que el byte entrante permanezca en el registro de entrada en
serie de Atmega. Cuando finaliza el barrido, la biblioteca Serial recopila el byte y el programa
puede leerlo. Pero si llega un segundo byte durante un barrido, será descartado.

Los comandos en mayúsculas pueden contener varios bytes, por lo que pueden corromperse si
se envían durante un barrido. Deje de enviar 'z' y espere el resultado antes de enviar comandos
en mayúsculas. Los comandos en mayúsculas solo se usan para depurar y probar. Varios pueden
contener un valor decimal entero 'n':

● 'A'n establece el canal ADC en n


● 'B' informe voltaje de "batería" = Vcc
● Estado del informe 'D'
● 'F'n establece la frecuencia de pwm
● 'R'n establece Vref para ADC
● 'T'n desencadenar el aumento o la caída
● 'U'n set prescaler y enviar datos de barrido
● 'V'n establece el período de muestra para ADC

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 8: agregar una pantalla


Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

3 más imágenes
(https://content
auto=webp&frame=1&fit=bounds&md=677957322a82c9aeb2efddb3a956aa5f)
instructables com/ORIG/FQ6/L0LK/JLWKXFCC/FQ6L0LKJLWKXFCC png? auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=a53ec70707f6311db5988c3fe14bf25e
(https://content instructables com/ORIG/FZ6/60PT/JLWKXFDN/FZ660PTJLWKXFDN jpg?

El osciloscopio puede tener su propia pantalla integrada: una OLED de 1,3". Aunque 1,3" suena
pequeña, estas pantallas son muy legibles.

La pantalla tiene un OLE de 1,3" que funciona a 3,3 V y está controlado por un chip SH1106 a
través de un bus I2C. (Las versiones SPI están disponibles, pero estoy usando los pines Arduino
SPI para la "lógica").

Necesitaba una biblioteca Arduino muy rápida y preferiblemente debería ser pequeña. La
biblioteca U8glib es lenta y enorme, así que escribí la mía. Tiene muy pocos comandos por lo
que se llama "SimpleSH1106".

El SH1106 tiene un búfer incorporado con un bit por píxel. Está dispuesto en 128 columnas por 7
franjas (hay otros tamaños disponibles). Cada franja tiene 8 píxeles de alto con el lsb en la parte
superior. En la documentación SH1106, las franjas se denominan "páginas", pero "franja" es el
término
Osciloscopio en una caja de cerillas - estándar
Arduino poren gráficos
Peter por computadora.
Balch (/member/Peter La unidad
más pequeña que puede
Balch/) Seguir escribir
Descargar
es
Favorito
w Lo hice

un byte: una columna de 8 píxeles que comienza en un límite de 8 píxeles.

Mi biblioteca no tiene un búfer de pantalla en Arduino, por lo que todos los comandos se basan
en escribir bytes completos en páginas. Es menos conveniente pero ganas 1k de RAM.

El Atmel328p tiene un controlador I2C integrado conectado a los pines A4 (SDA) y A5 (SCL). SDA
y SCL necesitan resistencias pull-up; el controlador I2C incorporado utiliza los pull-ups débiles
Atmel328p de alrededor de 50kohm. Los pull-ups de 50k funcionan a baja velocidad, pero los
flancos ascendentes no son lo suficientemente rápidos para alta velocidad, así que agregué pull-
ups de 1k al pin 3V3 del Nano.

El IDE de Arduino tiene una biblioteca de controladores I2C llamada Wire.h. Es una buena
biblioteca pequeña y rápida pero, como es de esperar con Arduino, está mal documentada. La
biblioteca inicializa el hardware I2C para que se ejecute a 100 kHz, pero yo quería más rápido.
Entonces, después de llamar a Wire.begin(), configuré el registro TWBR Atmel328p en un valor
más pequeño.

La biblioteca resultante es rápida: la visualización de barrido del osciloscopio se dibuja en 40 mS.


Están disponibles los siguientes comandos:

● void clearSH1106() llena la pantalla con 0 bytes (negro).


● void DrawByteSH1106 dibuja un solo byte (una columna de 8 píxeles).
● int DrawImageSH1106 dibuja una imagen.
● int DrawCharSH1106 dibuja un personaje.
● int DrawStringSH1106 dibuja una cadena.
● int DrawIntSH1106 dibuja un número entero.

Las imágenes se declaran en la memoria de programa (PROGMEM). Se proporciona un


programa de Windows para convertir un archivo BMP en una imagen codificada por longitud de
ejecución para SimpleSH1106.

Se proporciona una descripción completa con la biblioteca.

He mostrado un diseño de stripboard para el circuito. Hay tres stripboards: uno para el Nano,
uno para la pantalla y otro para el LM358. Deben formar un sándwich. Las tarjetas se muestran
desde el lado de los componentes. Finos alambres flexibles unen las dos tablas. Fije las tablas
con separadores soldados. En mi diagrama, el cobre del stripboard se muestra en cian. Las líneas
rojas son enlaces de cables en el stripboard o cables flexibles que unen los tableros. No he
mostrado los "cables de prueba".

Algunas pantallas parecen tener los pines en un orden diferente. Revisalos.

La coordenada x de los píxeles de la pantalla de 0,9" que compré va de x=0 a 127. Con la pantalla
de 1,3" van de x=2 a 129. La biblioteca contiene un "colOffset" constante que le permite ajustar
el desplazamiento para su pantalla.

Adjunté archivos Gerber y archivos fuente EasyPC para una PCB SM. Estos no han sido probados,
así que úselos bajo su propio riesgo.

ArdOsc2 (Esquema).pdf
(https://content.instructables.com/ORIG/F5T/L3IM/JLWKXFC6/F5TL3IMJLWKXFC6.pdf)
Descargar
(https://content.instructables.com/ORIG/F5T/L3IM/JLWKXFC6/F5TL3IMJLWKXFC6.pdf)

Descargar(https://content.instructables.com/ORIG/FU4/682O/JLWKXFEU/FU4682OJLWKXFEU.pdf)
ArdOsc2 (PCB).pdf (https://content.instructables.com/ORIG/FU4/682O/JLWKXFEU/FU4682OJLWKXFEU.pdf)
Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir
ArdOsc2.ino
Descargar

(https://content.instructables.com/ORIG/FO9/Z9YX/JNCCWCY5/FO9Z9YXJNCCWCY5.ino)
Descargar
Favorito

(https://content.instructables.com/ORIG/FO9/Z9YX/JNCCWCY5/FO9Z9YXJNCCWCY5.ino)
w Lo hice

SimpleSH1106.zip (https://content.instructables.com/ORIG/FO1/SZEE/JM0UZLLR/FO1SZEEJM0UZLLR.zip)
Descargar (https://content.instructables.com/ORIG/FO1/SZEE/JM0UZLLR/FO1SZEEJM0UZLLR.zip)

ArdOsc2 (PCB SM sin(https://content.instructables.com/ORIG/F8K/THTN/JMKVFXI1/F8KTHTNJMKVFXI1.zip)


probar).zip
Descargar
(https://content.instructables.com/ORIG/F8K/THTN/JMKVFXI1/F8KTHTNJMKVFXI1.zip)

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 9: Pantallas diferentes

(https://content
auto=webp&frame=1&fit=bounds&md=3192fb7e05091ed816f7107a4e947b24)
instructables com/ORIG/FOK/0OQW/JLWKXHI9/FOK0OQWJLWKXHI9 png? (https://content
auto=webp&frame=1&fit=bounds&md=f281bd0b6c4080117e90921b032bfcba)
instructables com/ORIG/FPG/MSOE/JLWKXFCG/FPGMSOEJLWKXFCG png?

La pantalla analógica muestra la forma de onda con una retícula. El eje horizontal muestra el
tiempo im mS. El eje vertical muestra los voltios con líneas de puntos dibujadas para 4 V, 0,5 V,
0,1 V y 20 mV; en el modo DC, 0V está en la parte inferior; en el modo CA, 0V está en el medio y
se muestra como una línea discontinua.

La pantalla lógica muestra cuatro canales de bits. D8 es el canal superior y D11 es el inferior. El
eje horizontal muestra el tiempo en mS.

Hay dos botones: un botón "Horizontal" para ajustar el eje de la base de tiempo y un botón
"Vertical" para ajustar el eje de ganancia. Si mantiene presionado cualquiera de los botones
durante 1 segundo, aparecerá una pantalla de menú.

Cuando se muestra el menú, el botón "Vertical" se desplaza a través de las diferentes


configuraciones y el botón "Horizontal" establece el valor para cada configuración. Si no
presiona ningún botón durante 2 segundos, el programa vuelve a mostrar la forma de onda.

 Agregar sugerencia V Pregunta | Comentario Descargar

Paso 10: Contador de frecuencia


Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

ArdOsc también puede actuar como un contador de frecuencia usando Timer1 y Timer2. Hay
dos formas en que un contador de frecuencia puede funcionar: contar el número de flancos
ascendentes en exactamente un segundo o medir el tiempo desde un flanco ascendente hasta
el siguiente flanco ascendente.

Una vez más, ¿vale la pena? Quizás. No recuerdo una vez que haya necesitado un contador de
frecuencia. Es fácil de hacer, ¿por qué no?

Para contar los flancos de la señal "lógica" en D8, el programa selecciona D5 como la entrada de
reloj del Timer1 (un contador/temporizador de 16 bits). D5 está conectado externamente a D8,
una de las entradas "lógicas". Timer0 (un temporizador de 8 bits) está configurado para
desbordarse una vez cada milisegundo. Cada vez que Timer0 se desborda, provoca una
interrupción. Después de 1000 interrupciones, el conteo en Timer1 se muestra como la
"frecuencia". Si el conteo del Timer1 excede 65536, provoca una interrupción y se anota el
número de tales interrupciones.

Para medir el tiempo de un flanco al siguiente de la señal de CA, el temporizador 1 se configura


como un temporizador de 16 MHz de funcionamiento libre. El registro ICR1 está configurado
para capturar el valor actual en Timer1 cada vez que el comparador sube. La entrada negativa
del comparador está conectada a A3 y la entrada positiva está conectada a D6. Cada vez que el
comparador sube, provoca una interrupción. El tiempo entre una interrupción y la siguiente es
el período (1/frecuencia). El programa muestra la frecuencia media medida en un segundo. El
comparador está diseñado para dispararse en un flanco ascendente, pero no tiene histéresis, por
lo que si hay ruido, un flanco descendente se verá como un flanco ascendente. Esto es
particularmente importante a bajas frecuencias, por lo que, por ejemplo, una señal de 10 Hz a
menudo se informará como 20 Hz.

Mientras tanto, Timer2 podría estar produciendo la "señal de prueba". Así que no hay
temporizadores libres y no podemos usar las funciones normales de Arduino delay(), millis(), etc.

El código del contador de frecuencia está basado en la excelente página web


(https://www.gammon.com.au/timers) de Nick Gammon (https://www.gammon.com.au/) .

Si no desea la entrada de "contador de frecuencia", entonces no necesita la conexión de D5 a D8.


En el archivo INO, establezca la constante bool bHasFreq en falso.

BlockDiag (PCB).pdf (https://content.instructables.com/ORIG/FCF/N8RD/JLWKXFCI/FCFN8RDJLWKXFCI.pdf)


Descargar (https://content.instructables.com/ORIG/FCF/N8RD/JLWKXFCI/FCFN8RDJLWKXFCI.pdf)

 Agregar sugerencia V Pregunta | Comentario Descargar


Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

Paso 11: Voltímetro

(https://content
auto=webp&frame=1&fit=bounds&md=c433e0000f1bee00a2d10593f9eeb75b)
instructables com/ORIG/FCI/WPCH/JLWKXFEI/FCIWPCHJLWKXFEI png? (https://content
auto=webp&frame=1&fit=bounds&md=9218a3d8b8581750b5d11e49e85ea344)
instructables com/ORIG/FIG/JBMW/JM0UZ513/FIGJBMWJM0UZ513 png?

El osciloscopio también puede actuar como un voltímetro que puede medir entre -20V y +20V
aproximadamente. Utiliza la referencia de voltaje de banda prohibida incorporada del
Atmega328p, por lo que es bastante preciso.

¿Vale la pena? La cantidad de características se está volviendo ridícula. ¿OK por qué no?

El voltaje se mide en A6 y el ADC usa Vcc (es decir, aproximadamente 5 V) como referencia.
Debido a que "5V" es aproximado, también medimos el valor real de Vcc comparándolo con el
intervalo de banda de 1,1 V. Según la hoja de datos, el intervalo de banda tiene solo un 10 % de
precisión, pero los pocos que probé están cerca de 1,1 V.

El voltaje entrante que desea medir pasa por la red de resistencias. He elegido los valores que se
muestran arriba

● Ra=120k
● Rb=150k
● RC=470k

Encontrará esas constantes cerca del comienzo de la función MeasureVoltage().

Rc te dice la impedancia de entrada del voltímetro. 470k es bajo en comparación con un


multímetro digital económico, pero es lo suficientemente alto como para ser útil.

El voltaje más bajo que el voltímetro puede medir es

-5*Rc/Ra = -19,6 V

Lo más alto que puede medir es

5*Rc/Rb+5 = 20,7 V

Puede elegir diferentes resistencias si lo desea.

What if you exceed those voltages? It will be fine. If the voltage at an input pin of the Arduino
goes above Vcc or below 0V, the protection diodes can survive a 1mA current. With a 470k that
means you could, in theory, have a test voltage of 470V. But I wouldn't trust the insulation of the
stripboard at 470V and you shouldn't be playing with voltages like that and a circuit this crude.
You'll need to calibrate the voltmeter if want
Balch/)accurate measurements. ConnectDescargar
the voltmeter
Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Seguir
Favorito
w Lo hice

input "probe" to 0V and see what the the Voltmeter reports. Adjust the calibrateZero constant
until the Voltmeter reads "0.00V". Now connect the voltmeter input to a known voltage source -
if you have a decent multimeter then measure the voltage of a 9V battery. Adjust the
calibrateVolts constant until the Voltmeter gives the right answer.

If you don't want the "voltmeter" input then you don't need the resistors connected to D6. In the
INO file, set the bool constant bHasVoltmeter to false.

 Add Tip V Ask Question | Comment Download

Step 12: Test Leads

auto=webp&frame=1&width=1024&height=1024&fit=bounds&md=75d08485cd958b71a1730d30a05f8d4d)
(https://content instructables com/ORIG/FMT/2X5U/JM0UZ4P6/FMT2X5UJM0UZ4P6 jpg?

Oscilloscopes usually have fancy test leads. I am generally using a solderless breadboard so I just
attached the sort of plug-in wires one uses with a breadboard. As the oscilloscope is powered
from 5V, I connect it to whatever 5V and 0V supply I'm using on the breadboard with more plug-
in wires.

 Add Tip V Ask Question | Comment Download

Step 13: Add a Signal Generator


Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

2 More Images
(https://content
auto=webp&frame=1&fit=bounds&md=411c080fcf2a26884ed95e9d4d1c20bf)
instructables com/ORIG/FB6/0YSY/JNCCWAQI/FB60YSYJNCCWAQI jpg?

A signal generator is a very useful piece of test gear. This one uses an AD9833 module. I've
decribed a stand-alone version here ( https://www.instructables.com/id/Signal-Generator-
AD9833/); this step describes how to add one to to ArdOsc. (This Step is an edit to this original
Instructable.)

The AD9833 can gererate sine, triangle and square waves from 0.1 MHz to 12.5 MHz - the
software in this project is limited to 1Hz to 100kHz. It can be used as a sweep generator. Sweep
generators help test the frequency response of filters, amplifiers and so on.

The AD9833 module I chose is similar to this one (https://www.ebay.co.uk/itm/Program-Micro-


processors-Sine-Square-Wave-AD9833-DDS-Signal-Generator-Module-MO/253572515084?
hash=item3b0a19850c:g:wb4AAOSwjk9ZU0Y3:rk:1:pf:0). I'm not saying that's the best or
cheapest supplier but you should buy one that looks like that photo.
The
Osciloscopio en una caja de connections
cerillas between
- Arduino por Peter Balchthe modules are:
(/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

● grounds connected together


● 5V = Vcc of AD9833
● D2 = FSync
● D13 = Clk
● D12 = Data

The schematic above is in addition to the schematic in Step 8. You can use another piece of
stripboard to add another layer to the sandwich described in Step 8.

I've updated the INO file in Step 8 to include code to control the AD9833. If you add an AD9833,
you should set the bHasSigGen variable to true (I have left it as false as most people won't have
an AD9833).

A new menu controls the AD9833. It allows you to select the frequency and the waveform and
whether the frequency is being swept.

The sweep generator repeatedly outputs a gradually increasing frequency over over 1, 5 or 20
seconds. It starts at "min" frequency and 1, 5 or 20 seconds later is at "max" frequency. The
frequency change is logarithmic and it is changed every milliSecond. While the frequency is
being swept, the oscilloscope cannot display it.

In a different mode, the sweep generator outputs a frequency, displays the oscilloscope input,
changes the frequency, displays the oscilloscope input and so on. The frequency changes from
"min" to "max" over 20, 100 or 500 of these steps (or "frames" as I've called them). The frequency
changes are cruder than in the "sweep" mode but you can watch what's going on.

 Add Tip V Ask Question | Comment Download

Step 14: Future Developments


Could it be battery powered? Yes, just add a 9V PP3 connected to the RAW pin of the Nano. It
typically uses 25mA.

Could it be powered by a single lithium cell? That's not so straightforward as 3.7V may not be
enough. The code that displays voltages in DC mode already reads the Vcc voltage so it will
adjust the graticule position. The Nano can run on 3.7V (into the "5V" pin). However, the 3V3
output will probably not be at 3.3V; the drop-out of the regulator is too big. You could run the
display straight off the 3.7V of the lithium cell but then where do you get the 0.55V reference
voltage from? It needs to be stable. Perhaps you could use an LM317 (which gives a stable 1.25V
if you connect its Adjust pin to 0V - the drop-out should be low enough at that current). Or you
could use an LED as a zener. Or the voltage at the Vref pin can be used so long as you draw a tiny
current - connect it to an emitter-follower. You may need to replace the LM358 with an op-amp
that works at a lower voltage.

Could the trigger be better? Digital oscilloscopes collect data before the trigger into a circular
buffer. Could the trigger level be variable? Could you have single sweep? Yes, you could do all of
those but you'd probably be better just buying a "proper" oscilloscope.

Could you use a Pro Mini? Yes but it's not worth it. You will need to make your own 3V3 signal for
the display and for the 0.55V reference voltage. If you're sending the data to a PC then you'll
need a serial-to-USB converter. Just use a Nano.
Could
cerillasit- be wireless? Yes. Add you own bluetooth with an HC-05 (Instructables Descargar
are available) and
Osciloscopio en una caja de Arduino por Peter Balch (/member/Peter Balch/) Seguir
Favorito
w Lo hice

connect to a PC or Android phone. An ESP 8266 would be more trouble that it's worth for this
project.

Could you use a bigger display? Yes but why bother, the quality isn't that good. Just buy an
oscilloscope.

Can you do better than an LM358? Yes. If you have a variety of op-amps in your component
drawer, try them out. Let me know which one works best.

 Add Tip V Ask Question | Comment Download

17 People Made This Project!

tlovie (/member/tlovie/) made it! Jayne_V (/member/Jayne_V/) made it! mistrije (/member/mistrije/) made it!

mdstr (/member/mdstr/) made it! CeesM1 (/member/CeesM1/) made it! TgrWorks (/member/TgrWorks/) made it!
Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar
Favorito
w Lo hice

lionzan (/member/lionzan/) made it! maverick366 (/member/maverick366/) made it! GeorgAndy (/member/GeorgAndy/) made it!

See 8 More

Did you make this project? Share it with us!

I Made It!

Recommendations

(/Digital-Measuring-Wheel/) (/Build-a-Variable-Lab-Bench-Power-Supply/)

Digital Measuring Wheel (/Digital- Build a Variable Lab Bench Power Supply
Measuring-Wheel/)
by AGBarber (/Build-a-Variable-Lab-Bench-Power-
(/member/AGBarber/)
in Tools Supply/)
by Max Imagination


91
8
4.7K 
567
8
36K

(/contest/tool2022/) (/contest/backyard22/)

 Add Tip
V
Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Ask Question
Seguir Descargar
Favorito
w Lo hice

| Post Comment

We have a be nice policy.

Please be positive and constructive.

Add Images Post

137 Comments

(/member/Spenter/) Spenter (/member/Spenter/) 1 year ago


Reply / Upvote
Hey:

I got insuficent memory problems when uploading. Anyone else have this problem and how did you
solve it?
3
replies
F

(/member/saahbrice98/) saahbrice98 (/member/saahbrice98/) 4 months ago


Reply / Upvote
Hi, thank you very much for the great project. i have mounted the circuit but my oled 1.3 display doesnt
display anything. even with the example sketch of the sh1106. what could be the pb please?

(/member/jong+chin/) jong chin (/member/jong+chin/) Question


7 months ago

Answer / Upvote
Hi, I have downloaded the code (Using PC as display without 1.3inch OLED) into Arduino Nano
equivalent (LQT8F32BP) and it worked well ! Thanks.

Next, I have downloaded the code (Using 1.3inch OLED as display) into Arduino Nano equivalent
(LQT8F32BP) but there is no display. I have added 1kohms pull up resistors to 3.3V for SCL & SDA of
1.3inch OLED. Any clue on the possible issues that I should look out for ?
3
answers
F

(/member/mistrije/) mistrije (/member/mistrije/) 1 year ago


Reply / Upvote
ok... looks like i have a problem with voltmeter...

i start the device, go through menu to the voltmeter, for a very short time shows 0.00V, but after a lil'
bit, shows 2.54V or somewhere close, with or without the probe.

with measuring pin to the ground, shows - 0.71, more or less, around 0.7x ...

ok... if i try to measure a voltage it looks like is the correct one AND that difference of around 0.71. yes,
positive! :)

ok, no problem, is not calibrated yet on this part, so... "Adjust the calibrateZero constant until the
Voltmeter reads "0.00V". "

but looks like modifying that constant has no effect!

i tried even negative values, going to the 100, nothing changes...

i don't touched "calibrateVolts" constant, because i have a 0 volt problem, not a too high or too low
reading...

it changes only if i change Ra and Rb values, but looks like is NOT too much related.

the most closest value of 0V was -0.08. yes, minus.

any advice?

is the only flaw i have... i already read comments, looks like no one is very interested in voltmeter part,
so, i don't see anything like that...

Osciloscopio en una caja de cerillas - Arduino por Peter Balch (/member/Peter Balch/) Seguir Descargar

yes, scope, logic analyzer, frequency counter and generator, that one from Arduino itself, all of them
Favorito
w Lo hice

work fine.

the only crazy thing is the voltmeter! :(

4
replies
F

(/member/MTN+TECH/) MTN TECH (/member/MTN+TECH/) Question


10 months ago

Answer / Upvote
Hi all. Its nice to see these handy pocket sized scopes. Is there ever a thought of designing a external
horizontal channel? Optional signal generator output also switched into the horizontal? Thanks,
regards, Doug E.
3
answers
F

(/member/Jayne_V/) Jayne_V (/member/Jayne_V/) 1 year ago


Reply / Upvote
Hi Peter, this is a fantastic project! Thank you so much for sharing. I am learning so much building it. It
is currently on a breadboard to make sure I have everything working before soldering anything. I have
a small problem with R9. Instead of a fixed resistor, I used a 47k trimpot to fine tune the 0.55V voltage
and a value of 16k gives me the 0.55V. However, what I found was with the input of the oscilloscope
connected to ground, adjusting the trimpot throughout its full range, with the voltage swinging between
approx 0.3v and 0.65V, the line on the AC display does not move at all. My thought is the op amp may
not be working. Digging through my components, I tried using an LM358, two LM741's and an LM358,
all behaving the same way. They are all very old IC's I've had lying around for years so there is every
chance they are dead, is there anything else I should be looking at?

Jayne
1 respuesta
F

Más comentarios publicar comentario

Categorías Sobre nosotros Recursos


 Circuitos  Vivir Quienes somos mapa del sitio
(/circuits/) (/living/) (/about/) (/sitemap/)
 Taller  Fuera de ¿Por qué publicar? Ayuda (/how-to-write-
(/workshop/) (/outside/) (/create/) a-great-instructable/)
 Artesanía  Contacto (/contact/)
(/craft/) Profesores
(/teachers/)
 Cocinando
(/cooking/)
Encuéntranos

(https://www.instagram.com/instructables/) (https://www.pinterest.com/instructables) (https://www.facebook.com/instructables) (https://www.twitter.com/instructables)

© 2022 Autodesk, Inc.

Términos de servicio Declaracion de privacidad La configuración de privacidad| Avisos legales y marcas registradas
(http://usa.autodesk.com/adsk/servlet/item?(http://usa.autodesk.com/adsk/servlet/item? No vender mi información personal (http://usa.autodesk.com/legal-
siteID=123112&id=21959721) siteID=123112&id=21292079) (https://www.autodesk.com/company/legal-notices- notices-trademarks/)
| | trademarks/ccpa-do-not-sell)
|
(http://www.autodesk.com)

También podría gustarte