|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

11.- Cálculo del tiempo de llegada de una señal luminosa y una acústica.

- Bajar el código: Velocidad_luz.zip

- Tutorial. Estudio del Scroll (SeekBar)

- Presentación.

- Sabiendo que la luz tiene una velocidad de 300.000 km/s y el sonido 340 m/s. Realiza un programa que muestre el tiempo de llegada de la luz y el sonido. Utiliza un scroll con valores entre 1 km y 20 km. Relaciónalos con fuegos artificiales y tormentas.

- Primero entramos en el programa Basic4Android / Tools / Run AVD Manager
- Luego en el Android SDK Manager / Tools / Manage AVDs...
- Marcamos un AVD Name / y pulsamos Start y luego Launch para abrir un emulador

____________________________
- Designer. Layout.

Creamos los controles

Insertamos mediante
Designer / Add View

Label1        Text = Distancia
Label2
Label3        Text = Tiempo en llegar luz
Label4
Label5        Text = Tiempo en llegar sonido
Label6
SeekBar1

En el SeekBar1 ponemos su Max value en 20

Guardamos el Designer:
File / Save : Layout

Conectamos el Designer al emulador.
Tools / Connect

Una vez cargado el Designer en el emulardor, podemos ubicar los controles donde queramos.


Ahora vamos al código del programa, pero antes seguimos en el Designer y marcamos:

Tools / Generate members
ValueChanged (Value As Int, UserChanged As Boolean)

Esto lo hacemos para que en el código aparezca:

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)

End Sub

Que es donde pondremos el algoritmo del cálculo.
(En realidad podríamos poner las dos líneas anteriores escrita manualmente, sin tener que hacerlo mediante el Generate members)

____________________________
- Código (copia y pega).

Código del programa Velocidad de la luz.
'Activity module
Sub Process_Globals
    ' Juan Antonio Villalpando
    ' juana1991@yahoo.com 
End Sub

Sub Globals
    Dim distancia, tiempo_luz, tiempo_sonido As Float ' Establecemos las variables
    Dim SeekBar1 As SeekBar ' Tenemos que declarar el SeekBar1 
    Dim Label1, Label2, Label3, Label4, Label6 As Label ' Tenemos que declarar los Label utilizados
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout") ' Cargamos el Designer
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
    distancia =  SeekBar1.value
    Label2.text= distancia & " Km"
    tiempo_luz = distancia / 0.3
    tiempo_sonido = distancia / 0.340
    
    Label4.Text= Round2 (tiempo_luz, 2) & " micro s"
    Label6.text= Round2 (tiempo_sonido, 2) & " s"
End Sub

- Tipos de variables:

Byte : 1 byte con signo: -128 hasta 127
Char : 2 bytes sin signo: 0 to 65535
Short : 2 bytes con signo: -32768 hasta 32767
Int : 4 bytes con sgino: -2147483648 hasta 2147483647
Long : 8 bytes con signo: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (9.2...E+18)
Float : 4 bytes +/- 3.4e +/- 38 (~7 digitos)
Double : 8 bytes +/- 1.7e +/- 308 (~15 digitos)

____________________________
- Comentarios.

- El SeekBar1 es un Scroll horizontal que en nuestro caso cambia su valor desde 1 hasta 20.

- El algoritmo se realiza cuando movemos (cuando cambia el valor) el SeekBar1

- Tomamos la distancia del SeekBar1
- La mostramos en el Label2 junto a la palabra " Km"

- Calculo el tiempo en llegar la luz. (La velocidad de la luz es de 300000 km/s). Si divido: distancia (Km) / 0.3 me dará el tiempo de llegada de la luz en microsegundos.
- Calculo el tiempo del sonido. (La velocidad del sonido es de 340 m/s). Si divido: distancia(Km) / 0.34 me dará el tiempo de llegada del sonido en segundos.

- Muestro los valores. Round2 (tiempo_luz, 2), me muestra el calculo con 2 decimales.

- Cuando lancemos el programa, observamos que el tiempo de llegada de la luz es muchísimo más rápido que el sonido.
Si estamos a una distancia de 4 Km de unos fuegos artificiales, observaremos que el tiempo en visualizar el fogozado de luz es de 13,33 micro segundos, en cambio el sonido tardará en llegar 11,76 segundos.

________________

12.- Cambio del brillo de la pantalla.

Mediante el Designer creamos un Layout llamado "Layout", insertamos un SeekBar1.
En la propiedad Max Value del SeekBar1, ponemos el número 255.

Al mover el SeekBar1, cambiará el brillo de la pantalla.

Atención: si pones el brillo al mínimo no se verá la pantalla ni los controles.

Código del programa.
Sub Process_Globals
    ' Juan Antonio Villalpando
    ' juana1991@yahoo.com 
End Sub

Sub Globals
    Dim p As Phone
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("Layout")
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
    p.SetScreenBrightness(Value/255)
End Sub

________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información